Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Java MKM.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
634.88 Кб
Скачать

41.Методы классов Character и Complex.

Класс Character. В этом классе собраны статические константы и методы для работы с отдельными символами.

Статический метод

digit(char ch, in radix)

Переводит цифру ch системы счисления с основанием radix в ее числовое значение типа int .

Статический метод

forDigit(int digit, int radix)

производит обратное преобразование целого числа digit в соответствующую цифру (тип char ) в системе счисления с основанием radix .

Основание системы счисления должно находиться в диапазоне от Character.MIN_RADIX до Character.MAX_RADIX.

Метод tostring() переводит символ, содержащийся в классе, в строку с тем же символом.

Статические методы toLowerCase() , touppercase(), toTitieCase() возвращают символ, содержащийся в классе, в указанном регистре. Последний из этих методов предназначен для правильного перевода в верхний регистр четырех кодов Unicode, не выражающихся одним символом.

Множество статических логических методов проверяют различные характеристики символа, переданного в качестве аргумента метода:

isDef ined() — выясняет, определен ли символ в кодировке Unicode; 

isDigit() — проверяет, является ли символ цифрой Unicode;

isidentifierignorable() — выясняет, нельзя ли использовать символ в идентификаторах;

isisocontroi() — определяет, является ли символ управляющим;

isJavaidentifierPart() — выясняет, можно ли использовать символ в идентификаторах;

isjavaidentifierstart() — определяет, может ли символ начинать идентификатор;

isLetter() — проверяет, является ли символ буквой Java;

IsLetterOrDigit() — Проверяет, является ли символ буквой или цифрой Unicode;

isLowerCase() — определяет, записан ли символ в нижнем регистре; 

isSpaceChar() — выясняет, является ли символ пробелом в смысле Unicode; 

isTitieCase() — проверяет, является ли символ титульным;

isUnicodeldentifierPart() — выясняет, можно ли использовать символ в именах Unicode;

isunicodeidentifierstart() — проверяет, является ли символ буквой Unicode; 

isUpperCase() — проверяет, записан ли символ в верхнем регистре; 

isWhitespace() — выясняет, является ли символ пробельным.

Точные диапазоны управляющих символов, понятия верхнего и нижнего регистра, титульного символа, пробельных символов, лучше всего посмотреть по документации Java API.

Класс Complex.Комплексные числа широко используются не только в математике. Они часто применяются в графических преобразованиях, в построении фракталов, не говоря уже о физике и технических дисциплинах. Но класс, описывающий комплексные числа, почему-то не включен в стандартную библиотеку Java. Восполним этот пробел.

Расширенные методы класса Complex

Следующий код возвращает действительную часть комплексного числа:

public double re(){

return x; }

Отсутствие статического ключевого слова означает, что этот метод может быть вызван только из сложного объекта. Например, следующий разумный способ использовать этот метод:

Complex z = Complex.fromPolar(1,2*Math.PI/7);

System.out.println("The number "+z.re()+" is the real part of a 7th root of unity.");

Квадрат абсолютного значения комплексного числа:

public double absSquared() {

return x*x+y*y; }

Абсолютное значение комплексного числа

public double abs() {

return Math.sqrt(absSquared()); }

Заметим, что это код вызывает нашу absSquared метод, а затем использует статический метод из java.lang.Math для вычисления квадратного корня. (Статический метод можно назвать только с помощью имени класса, в то время как большинство методов, таких как наш метод Re () необходим объект, чтобы называть их.)

Следующий метод возвращает комплексное сопряжение:

public double conj(){

return new Complex(x,-y); }

Обратим внимание, что этот метод вызывает один из наших конструкторов.

42.

примеры :

public String filename() {

        int dot = fullPath.lastIndexOf(extensionSeparator);

        int sep = fullPath.lastIndexOf(pathSeparator);

        return fullPath.substring(sep + 1, dot);

    }

 

    public String path() {

        int sep = fullPath.lastIndexOf(pathSeparator);

        return fullPath.substring(0, sep);

    }

String output = "Some text";      int count = 100;      for(int i =0; i<count; i++) {      output += i;      }      return output; 

//More efficient version using mutable StringBuffer      // set an initial size of 110      StringBuffer output = new StringBuffer(110);      output.append("Some text");      for(int i =0; i<count; i++) {          output.append(i);      }      return output.toString(); 

Вышеуказанный код создает только два новых объекта, StringBuffer и строковую константу, которая возвращается. StringBuffer расширяется по мере надобности, что, в свою очередь дороговато, так что лучше инициализировать StringBuffer корректным значением размера. Другой важный момент заключается в том, что создание дополнительных строк не ограничено математическим оператором "+", но существует некоторое количество методов, таких как concat(), trim(), substring(), replace() в классах String, которые генерируют новые объекты.

Класс StringTokenizer из пакета java.utii небольшой, в нем три конструктора и шесть методов.

Первый конструктор StringTokenizer (String str) создает объект, готовый разбить строку str на слова, разделенные пробелами, символами табуляций  '\t', перевода строки '\n' и возврата каретки '\r' . Разделители не включаются в число слов.

Второй конструктор StringTokenizer (String str. String delimeters) задает разделители вторым параметром deiimeters , например:

StringTokenizer("Казнить,нельзя:пробелов-нет", " \t\n\r,:-");

Пример:

String str = "This is String , split by StringTokenizer, created by mkyong";

StringTokenizer st = new StringTokenizer(str);

 

System.out.println("---- Split by space ------");

while (st.hasMoreElements()) {

System.out.println(st.nextElement());

}

 

System.out.println("---- Split by comma ',' ------");

StringTokenizer st2 = new StringTokenizer(str, ",");

 

while (st2.hasMoreElements()) {

System.out.println(st2.nextElement());

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]