Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_k_ekzamenu_po_programmirovaniyu_1_semest....docx
Скачиваний:
19
Добавлен:
05.12.2018
Размер:
116.52 Кб
Скачать

70. Класс String. Особенность экземпляров класса

Строка –это последовательность символов.Каждая строка-обьект типа String. После создания строки символы изменятть нельзя. Нужно создать новый обьект типа стринг котрый содержит необходимую подификацию.Исходная строка остается неизменной . Строки символов являются в языке Java объектами класса String. Такие стро-ки-объекты не могут изменяться после их создания, т.е. являются константами. Класс String содержит более десяти конструкторов, различными способами создаю-щих строки – из массивов символов и байтов и из других строк. Класс содержит ме-тоды для выборки отдельных символов строки, для сравнения строк, для выделения подстрок и прочих действий, например, для замены всех маленьких букв строки большими и наоборот. Если результатом применения метода к данной строке явля-ется новая строка, она создается автоматически. Класс String не содержит методов для проверки свойств отдельных символов – такие методы находятся в классе-оболочке Character

1)String sa=”abcdef”;

String sb=new String (“abcdef”);

2) string sp=new String(“a”);

string sq=new String(“b”);

sq=sp;

System.out.println(sp);

Выводиться «аb»

71.Методы выделения элементов строки

Есть несколько способов извлечения символов из обьекта типа стринг. Нумерация в строке идет с 0 символа.

Метод charAt()

Для извлечения одиночного симвоа из обьекта можно сослаьтся на индивидуальный символ через метод charAt()

Форма:

Char charAt(int индекс)

Метод getChars()

Извлекает больше одного символа.

Void getChars(int start, unt end, char target [ ]. Int targetStart)

72. Методы поиска строки

Класс стринг предоставляет 2 метода которые позволяют выполнить поиск указанного символа или подстроки в строке.

indexOf()-поиск первого вхождения символа или строки

lastIndexOf()-поиск последнего вхождения символа или подстроки

73.Сравнение строк.Примеры

Есть 2 метода equals() и операция ==. Они выполняют разные функции. equals() -сравнивает символы внутри стринг-обьекта а оператор == - 2 обьектные ссылки ,чтобы видеть обращаються ли они к одному и тому же экземпляру.

Class Test{

Public static void main (){

String s1=”a”;

String s2=new String(s1)

System.out.println(s1+”равен”+s2+”->”+s1.equals(s2));

System.out.println(s1+”==”+s2+”->”(s1==s2));

}

}

Выводиться: а равен а -> true

a==a-> false

Метод compareTo()

Сравнивание строки и сортировка по алфовиту

for(int j=0;j<фио.length;j++){

for(int i=j+1;i<фио.length;i++){

if(фио[i].compareTo(фио[j])<0){

String t=фио[j];

фио[j]=фио[i];

фио[i]=t;

}

}

74.Преобразования символов строки в маленькие буквы и наоборот

Метод ToLowerCase() преобразует все символы в строке с верхнего регистра на нижний. Метод toUpperCase() преобразует все символы в строке с нижнего регистра на верхний . неалфавитные символы(цыфры) остаються не затронутыми.

String toLowerCase();

String toUpperCase();

75. Разбиение строки на слова .StringTokenizer

Класс StringTokenizer из пакета java.util содержит простые средства для разделения строки на отдельные составляющие – токены. Токен (далее понимается как слово) – любая цепочка символов, не содержащая разде-лителей и ограниченная слева и справа разделителями. Множество символов-разделителей может быть указано заранее или в процессе выделения токенов.

Имеется особый режим поиска токенов, при котором отдельный сим-вол-разделитель также считается токеном. Такой режим задается при создании объекта (при вызове конструктора) значением true параметра returnDelim.

Когда создается объект класса StringTokenizer, разделяемая строка и множество разделителей известны (разделители заданы неявно в случае кон-структора с одним параметром или явно в случае других конструкторов). По-этому можно определить, сколько токенов в строке (метод countTokens()). Оче-редной токен выделяется как строка (метод nextToken()) или как объект (метод nextElement()). Поиск токенов в строке происходит слева направо.

Иногда после обнаружения определенного слова необходимо сменить множество разделителей, чтобы остаток строки делить на токены по-другому. Новые разделители указывают как аргумент метода nextToken("разделители"). Эти разделители будут действительны до новой замены.

Обычно требуется перебирать все токены строки, для чего применяют цикл for или цикл while. В цикле for переменная цикла "пересчитывает" токены, количество которых определено методом countTokens( ). В цикле while в каче-стве условия применяют метод hasMoreTokens( ), который заглядывает вперед и возвращает true только в том случае, если впереди есть хоть один токен. В обо-их случаях перемещение от токена к токену производит метод nextToken().

Ниже приводится простейший пример разделения строки на слова:

StringTokenizer st = new StringTokenizer("строка состоит из отдельных слов");

while (st.hasMoreTokens( ) ) {

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

}

Конструктор с одним параметром предполагает, что используются стан-дартные разделители – " \t\n\r\f" – пробел, табуляция, новая строка, возврат ка-ретки, новая страница. В качестве результата при выполнении цикла while из примера будут напечатаны слова: строка, состоит, из, отдельных, слов.

80.Табулирование функции

Ранее для вывода использовался метод println, который выводил объект типа String в отдельную строку.

В этой работе рекомендуется применить метод форматированного вывода printf, который более удобен для представления результатов в виде аккуратной таблицы. Вызов метода имеет форму: System.out.printf (format, list);

Строка форматов format содержит форматные коды, по одному на каждый элемент списка выводимых переменных list. Форматный код имеет структуру (в скобки [ и ] заключены необязательные элементы, т.е. в программе такой элемент или присутствует без скобок, или отсутствует)

%[номер_аргумента$][флаги][место][.дробь]тип

Флаги -+ 0,( определяют дополнительные характеристики выводимых данных: минус – выравнивание влево, + – обязательный вывод знака числа, пробел – пробел вместо плюса для положительных чисел, ноль – заполнение старших пустых позиций числа нулями, запятая – локализованный разделитель в числах, скобка – отрицательные числа заключаются в скобки.

Параметр тип определяет вариант преобразование внутреннего представления данных во внешнюю форму:

s String (строка)

c char

d десятичное целое

o восьмеричное целое

x шестнадцатеричное целое

f действительное, с фиксированной точкой (в форме 999.9999)

e действительное, с плавающей точкой (в форме 0.999Е 99)

tD вывод даты в форме мм дд гг

Параметры место и дробь определяют количество позиций для выводимых данных (ширину поля) и количество цифр в дробной части. Например, %08.3f применяется для вывода действительных данных, под данные отводится 8 позиций (с учетом знака и разделяющей точки), из них под дробную часть – 3 позиции, при необходимости в целую часть добавляются ведущие нули, чтобы полностью использовать 8 позиций.

Элементы между форматными кодами выводятся как литералы, в частности, \t – табуляция, \n – переход на новую строку.

В строке 18 программы применен метод printf, в списке переменных которого две переменных: переменная x (значение аргумента) и переменная y (вычисленное и запомненное значение функции). Коды формата для этих переменных одинаковы. Они означают, что значение каждой переменной будет занимать не менее 12 позиций, из которых 5 правых позиций будут использованы для дробной части числа.

System.out.printf("% 12.5f % 12.5f\n",x,y);

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