Строка является инвариантным классом. Использование строки для изменения строки создаст новый объект строки. Если он часто модифицируется, будет сгенерировано многие строковые объекты, что очень дорого. Следовательно, Java предоставляет класс StringBuffer, который гораздо более эффективен, чем строка при изменении строк.
В Java есть 3 класса, которые отвечают за операции персонажа.
открытый класс usingstringbuffer { / *** Найти соответствующую строку* / public static void testfindstr () {stringBuffer sb = new StringBuffer (); SB.Append («Это строковый буффер»); // Возвращает позицию, в которой подстроение появляется сначала в строке. Если его не существует, верните System.out.out.out.println ("sb.indexof (/" is/") =" + sb.indexof ("is")); // Установить параметры для метода индекса и указать систему соответствующего исходного положения. // Возвращает последнюю позицию подстроения в строке. Если его не существует, верните System.out.out.out.println ("sb.lastindexof (/" is/") =" + sb.lastindexof ("is")); // Установить параметры для метода LastIndExOF и укажите систему соответствующего конечного положения. } / *** перехватить строку* / public static void testsubstr () {stringBuffer sb = new StringBuffer (); SB.Append («Это строковый буффер»); // позиция завершения по умолчанию является конец строковой системы. // Метод подстроения перехватывает строку, которая может указать начальную позицию и позицию завершения системы перехвата. } / ** * Получить символы в определенной позиции в строке * / public static void testcharatstr () {stringBuffer sb = new StringBuffer ("Это stringBuffer"); System.out.println (sb.charat (sb.length () - 1)); } / *** Добавить различные типы данных в хвост строки* / public static void testappend () {StringBuffer SB = new StringBuffer ("Это StringBuffer!"); SB.Append (1.23f); System.out.println (sb.toString ()); } / *** Удалить данные в строке* / public static void testDelete () {stringBuffer sb = new StringBuffer ("Это stringBuffer!"); SB.Delete (0, 5); SB.DeleteCharat (sb.length () - 1); System.out.println (sb.toString ()); } / *** Вставить различные типы данных в строки* / public static void testinsert () {StringBuffer SB = new StringBuffer ("Это StringBuffer!"); // может вставлять символы, массивы символов, строки и различные числа и логические значения в указанных позициях SB.Insert (2, 'w'); sb.insert (3, new char [] {'a', 'b', 'c'}); SB.Insert (8, "ABC"); SB.Insert (2, 3); sb.insert (3, 2,3f); SB.Insert (6, 3,75d); SB.Insert (5, 9843L); sb.insert (2, true); System.out.println ("testinsert:" + sb.tostring ()); } / *** Замените некоторые символы в строке* / public static void testReplace () {stringBuffer sb = new StringBuffer ("Это StringBuffer!"); // заменить определенный символ в строке на другой строке sb.replace (10, sb.length (), "integer"); System.out.println ("testReplace:" + sb.toString ()); } / *** обратная строка* / public static void reversestr () {stringBuffer sb = new StringBuffer ("Это stringBuffer!"); System.out.println (sb.reverse ()); // метод обратного метода изменяет строку}} краткое содержание:
StringBuffer не инвариантный класс. При изменении содержимого строки не создано новых объектов. Следовательно, это больше подходит для изменения строк, чем классы строк;
Класс StringBuffer не предоставляет такой же метод ToCharraray, что и String;
Метод замены класса StringBuffer отличается от метода замены класса строки. Его метод замены имеет три параметра. Первый параметр указывает начальную позицию замененного подстроения, второй параметр указывает конечную позицию замененного подстроения, а третий параметр указывает новую подстроение.
Выше приведено в этой статье, я надеюсь, что это будет полезно для каждого обучения.