Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
public class Test {
public static void main(String[] args) { Testt = newTest(); String s = " prefix !"; System.out.println(s); s = s.trim(); System, out. println(s); s = s.concat(" suffix"); System, out. println(s);
}
}
prefix ! prefix ! prefix ! suffix
В данном случае может сложиться впечатление, что строку (объект String, на который ссылается переменная s), можно изменять. В действительности это не так. В результате выполнения методов trim (отсечение пробелов в начале и конце строки) и concat создаются новые объекты-строки и ссылка s начинает указывать на новый объект-строку. Таким образом, меняется значение ссылки, объекты же неизменяемы.
Как уже отмечалось, строка состоит из двухбайтных Unicode-символов. Однако во многих случаях требуется работать со строкой как с набором байт (ввод/вывод, работа с базой данных и т.д.). Преобразование строки в последовательность байтов производится следующими методами:
• byte[] getBytes() - возвращает последовательность байтов в кодировке, принятой по умолчанию (как правило, зависит от настроек операционной системы);
• byte[] getBytes(String encoding) - возвращает последовательность байтов в указанной кодировке encoding.
Для выполнения обратной операции (преобразования байтов в строку) необходимо сконструировать новый объект-строку с помощью следующих методов:
• String(byte[] bytes) - создает строку из последовательности байтов в кодировке, принятой по умолчанию;
• String(byte[] bytes, String ene) - создает строку из последовательности байтов в указанной кодировке.
String Buffer
Этот класс используется для создания и модификации строковых выражений, которые после можно превратить в String. Он реализован на основе массива char[], что позволяет, в отличие от String, модифицировать его значение после создания объекта.
Рассмотрим наиболее часто используемые конструкторы класса StringBuffer:
• StringBuffer () - создает пустой StringBuffer;
• StringBuffer(String s) - буфер заполняется указанным значением s;
• StringBuffer (int capacity) - создает экземпляр класса StringBuffer с указанным размером (длина char[]). Задание размера не означает, что нельзя будет оперировать строками с большей длинной, чем указано в конструкторе. На самом деле этим гарантируется, что при работе со строками меньшей длины дополнительное выделение памяти не потребуется.