Перевернуть строку означает иметь строку в обратном порядке. Например, строку «abcde» можно заменить на «edcba», а «pool» — на «loop». В качестве другого примера, строку «abc def ghi» можно заменить на «ihg fed cba».
Строковый литерал объекта для класса String является константой. Это означает, что ни один из его символов не может быть изменен или перемещен. К счастью, в Java есть два других строковых класса, которые называются StringBuffer и StringBuilder. Каждый из этих двух классов имеет метод reverse() для обращения строки.
Таким образом, чтобы инвертировать строку, преобразуйте объект String в объект StringBuffer или StringBuilder. Используйте метод reverse() любого из этих классов, чтобы перевернуть строку. Затем преобразуйте результат обратно в строковый объект.
Чтобы преобразовать объект String в объект StringBuffer, используйте объект строки в конструкторе StringBuffer. Чтобы преобразовать объект StringBuffer обратно в объект String, используйте объект StringBuffer в конструкторе String.
Чтобы преобразовать объект String в объект StringBuilder, используйте объект строки в конструкторе StringBuilder. Чтобы преобразовать объект StringBuilder обратно в объект String, используйте объект StringBuilder в конструкторе String.
- Конструкции String и StringBuffer
- Строка в StringBuffer
- StringBuffer в строку
- Конструкции String и StringBuilder
- Строка в StringBuilder
- StringBuilder в строку
- Реверсирование с помощью StringBuffer
- Реверсирование с помощью StringBuilder
- StringBuffer и StringBuilder
- Реверсирование со строкой и массивом
- Заключение
Конструкции String и StringBuffer
Строка в StringBuffer
Синтаксис для создания объекта StringBuffer из объекта String:
StringBuffer sb = new StringBuffer(String str);
где sb — объект StringBuffer. Следующая программа иллюстрирует это:
public class TheClass {
public static void main(String[] args) {
String str = «Higher Level»;
StringBuffer sb = new StringBuffer(str);
System.out.println(sb);
}
}
Результат:
Higher Level
Обратите внимание, что программе не нужно было импортировать класс StringBuffer.
StringBuffer в строку
Синтаксис для создания объекта String из объекта StringBuffer:
String str = new String(StringBuffer sb);
где str — строковый объект. Следующая программа иллюстрирует это:
public class TheClass {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer(«Higher Level»);
String str = new String(sb);
System.out.println(str);
}
}
Результат:
Higher Level
Конструкции String и StringBuilder
Строка в StringBuilder
Синтаксис для создания объекта StringBuilder из объекта String:
StringBuilder sbl = new StringBuilder(String str);
где sbl — объект StringBuilder. Следующая программа иллюстрирует это:
public class TheClass {
public static void main(String[] args) {
String str = «Higher Level»;
StringBuilder sbl = new StringBuilder(str);
System.out.println(sbl);
}
}
Результат:
Higher Level
Обратите внимание, что программе не нужно было импортировать класс StringBuilder.
StringBuilder в строку
Синтаксис для создания объекта String из объекта StringBuilder:
String str = new String(StringBuilder sbl);
где str — строковый объект. Следующая программа иллюстрирует это:
public class TheClass {
public static void main(String[] args) {
StringBuilder sbl = new StringBuilder(«Higher Level»);
String str = new String(sbl);
System.out.println(str);
}
}
Результат:
Higher Level
Реверсирование с помощью StringBuffer
Процедура обращения строки с помощью StringBuffer выглядит следующим образом:
StringBuffer sb = new StringBuffer(String str)
StringBuffersbr = sb.reverse()
String strr = new String(StringBuffersbr);
Следующая программа иллюстрирует это:
public class TheClass {
public static void main(String[] args) {
String str = «Higher Level»;
StringBuffer sb = new StringBuffer(str);
StringBuffersbr = sb.reverse();
String strr = new String(sbr);
System.out.println(strr);
}
}
Результат:
leveL rehgiH
Реверсирование с помощью StringBuilder
Процедура обращения строки с помощью StringBuilder выглядит следующим образом:
StringBuilder sbl = new StringBuilder(String str)
StringBuilder sblr = sbl.reverse()
String strr = new String( StringBuilder sblr);
Следующая программа иллюстрирует это:
public class TheClass {
public static void main(String[] args) {
String str = «Higher Level»;
StringBuilder sbl = new StringBuilder(str);
StringBuilder sblr = sbl.reverse();
String strr = new String(sblr);
System.out.println(strr);
}
}
Результат:
leveL rehgiH
StringBuffer и StringBuilder
StringBuilder — это упрощенная форма StringBuffer. Если StringBuffer используется с несколькими потоками, будет хорошая синхронизация. StringBuilder не обеспечивает хорошей синхронизации с несколькими потоками. StringBuilder следует использовать только с однопоточными программами.
Основными методами для StringBuilder и StringBuffer являются методы append() и insert(). С помощью этих методов их строковые литералы могут быть увеличены в длину, а также изменены. Эти объекты не могут иметь нулевое значение в качестве одного из своих символов.
Реверсирование со строкой и массивом
Строковое значение (символы, формирующие строковый литерал) для объекта String является постоянным. Персонажей, конечно, можно прочитать. Последовательность символов доступна только для чтения. Если символы считываются в обратном направлении в массив, а массив преобразуется в строковый объект класса строк, это будет реверсированием строки.
Используя эту процедуру, размер строки должен быть определен с помощью следующего оператора:
len = str.length();
где length() — это метод класса строки, возвращающий длину строки. Чтобы сделать массив символов из строки, используйте следующую конструкцию строки:
String strR = new String(char[])
Следующая программа использует эту процедуру для обращения строки в Java:
public class TheClass {
public static void main(String[] args) {
String str = «Higher Level»;
int len = str.length();
char[] arr = new char[len];for (int i=len; i>0; i—)
arr[len—i] = str.charAt(i—1);String strR = new String(arr);
System.out.println(strR);
}
}
Результат:
leveL rehgiH
Так же, как раньше. Обратите внимание на использование метода charAt() для получения символа по индексу строкового объекта.
Заключение
Строковый литерал объекта для класса String является константой. Это означает, что ни один из его символов не может быть изменен или перемещен. К счастью, в Java есть два других строковых класса, которые называются StringBuffer и StringBuilder. Каждый из этих двух классов имеет метод reverse() для обращения строки.
Таким образом, чтобы инвертировать строку, преобразуйте объект String в объект StringBuffer или StringBuilder. Используйте метод reverse() любого из этих классов, чтобы перевернуть строку. Затем преобразуйте результат обратно в строковый объект.
Чтобы преобразовать объект String в объект StringBuffer, используйте объект строки в конструкторе StringBuffer. Чтобы преобразовать объект StringBuffer обратно в объект String, используйте объект StringBuffer в конструкторе String.
Чтобы преобразовать объект String в объект StringBuilder, используйте объект строки в конструкторе StringBuilder. Чтобы преобразовать объект StringBuilder обратно в объект String, используйте объект StringBuilder в конструкторе String.