String java добавить элемент

Class StringBuilder

A mutable sequence of characters. This class provides an API compatible with StringBuffer , but with no guarantee of synchronization. This class is designed for use as a drop-in replacement for StringBuffer in places where the string buffer was being used by a single thread (as is generally the case). Where possible, it is recommended that this class be used in preference to StringBuffer as it will be faster under most implementations.

The principal operations on a StringBuilder are the append and insert methods, which are overloaded so as to accept data of any type. Each effectively converts a given datum to a string and then appends or inserts the characters of that string to the string builder. The append method always adds these characters at the end of the builder; the insert method adds the characters at a specified point.

For example, if z refers to a string builder object whose current contents are » start «, then the method call z.append(«le») would cause the string builder to contain » startle «, whereas z.insert(4, «le») would alter the string builder to contain » starlet «.

In general, if sb refers to an instance of a StringBuilder , then sb.append(x) has the same effect as sb.insert(sb.length(), x) .

Every string builder has a capacity. As long as the length of the character sequence contained in the string builder does not exceed the capacity, it is not necessary to allocate a new internal buffer. If the internal buffer overflows, it is automatically made larger.

Читайте также:  Java listeners and threads

Instances of StringBuilder are not safe for use by multiple threads. If such synchronization is required then it is recommended that StringBuffer be used.

Unless otherwise noted, passing a null argument to a constructor or method in this class will cause a NullPointerException to be thrown.

Источник

Java String: работа со строками в Java

Работа со строками в Java очень проста(Используется класс class java.lang.String). Главное, на что следует обратить внимание, это то, что работа со строками с помощью оператора “+” не очень эффективна; она создает новые строковые объекты без необходимости.

Для большинства программ это не имеет значения; но если вы выполняете много операций со строками и скорость не на последнем месте, используйте StringBuffer (потокобезопасный) или StringBuilder (не потокобезопасный, но немного более эффективный).

Также имейте в виду, что Java не самый эффективный язык в мире для работы с большим количеством текстовых данных. Perl или Python обычно работают намного быстрее.

И, наконец, не забудьте использовать метод equals() для сравнения текста в строках, а не == (что сравнивает объекты, а не текст).

Объявление и инициализация строк в Java

Вы можете объявить и инициализировать строку в Java, используя класс String.

String text = "Hello"; System.out.println(text);

Присоединение, объединение или добавление строк в Java

Самый простой способ объединить строки в Java – это использовать +. Это работает так:

String text1 = "Hello"; String text2 = "Jim"; System.out.println(text1 + " " + text2);

Однако это не очень эффективно, потому что каждый раз, когда вы пишете +, вы создаете новый объект String. По этой причине вы можете использовать StringBuilder или более старую поточно-ориентированную версию StringBuffer.

StringBuilder sb = new StringBuilder(); sb.append("Hello"); sb.append(" to"); sb.append(" you"); System.out.println(sb.toString());

Более того, поскольку append() возвращает ссылку на сам объект StringBuilder, мы можем написать что-то вроде этого с тем же эффектом:

StringBuilder sb = new StringBuilder(); sb.append("Hello") .append(" to") .append(" you"); System.out.println(sb.toString());

Подстрока Java: выбор частей строк

Чтобы получить часть строки, используйте метод substring.

String substring(int beginIndex, int endIndex)

EndIndex здесь не является обязательным; если его убрать, вы получите всю строку после beginIndex. Обратите внимание, что выбранная подстрока не включает символ в самом endIndex. Она включает в себя все символы до endIndex.

Длина выбранной подстроки равна endIndex – startIndex.

String text = "The quick brown fox"; // Everything from index 4 onwards System.out.println(text.substring(4)); // Index 0 up to but not including index 3. System.out.println(text.substring(0, 3));

Java Array String: объединение массивов строк

Удивительно, но в ядре Java нет способа объединения массивов строк, хотя такие методы существуют в различных библиотеках.

Вы всегда можете создать свои собственные. Следующий класс объявляет именно такой метод и использует его для соединения массива строк. Вы можете легко адаптировать это для работы с ArrayList или Vector или чем-то еще.

package caveofprogramming.aquarium; package caveofprogramming.aquarium; import java.util.*; public class Test < public static String join(String[] strings, String glue) < StringBuilder sb = new StringBuilder(); for(int i=0; i < strings.length; i++) < sb.append(strings[i]); if(i < strings.length - 1) < sb.append(glue); >> return sb.toString(); > public static void main(String [] args) < String texts[] = ; System.out.println(join(texts, " ")); > >

Java String Split: разделение строк

Вы можете разбить строку на массив токенов, используя метод split (REGEX).

Давайте посмотрим на некоторые примеры.

Чтобы разделить пробелом (это также работает для вкладок):

String text = «The quick brown fox»; String text = «The quick brown fox»; // Split on whitespace String [] tokens = text.split(«\s+»); for(int i=0; i

The
quick
brown
fox
Разделим электронный адрес на части

String text = «someone@nowhere.com»; // Split on @ and . // The double backslashes make this regular // expression look more confusing than it is. // We are escaping once for the sake of the // regex, and again for the sake of Java. String [] tokens = text.split(«[\@\.]+»); for(int i=0; i

Нахождение длины строки

java string length() возвращает общее количество символов в строке. Длина строки Java такая же, как в коде Unicode.

public class LengthExample< public static void main(String args[])< String s1="javatpoint"; String s2="python"; System.out.println("string length is: "+s1.length());//10 is the length of javatpoint string System.out.println("string length is: "+s2.length());//6 is the length of python string >>

string length is: 10
string length is: 6

public class LengthExample2 < public static void main(String[] args) < String str = "Javatpoint"; if(str.length()>0) < System.out.println("String is not empty and length is: "+str.length()); >str = ""; if(str.length()==0) < System.out.println("String is empty now: "+str.length()); >> >

String is not empty and length is: 10
String is empty now: 0

Сравнение строк Java

Для сравнения строк в Java используйте equals(), а не ==.

== сообщит вам, если две ссылки ссылаются на один и тот же объект. Чтобы проверить, идентичны ли две строки, .equals делает то, что вы хотите.

Следующая программа иллюстрирует это:

// Here’s some text. String text1 = «Hello there»; // Here’s the same text. String text2 = «Hello there»; // Here’s a second reference to the // first string. String text3 = text1; // The first two strings are equal // (contain the same text) if(text1.equals(text2)) < System.out.println("text1 matches text2."); >// . and in this case they are the same object, // which presumably is due to optimization by the // virtual machine. DO NOT rely on this!! if(text1 == text2) < System.out.println("text1 and text2 are the same object (oddly)"); >// text2 and text3 ARE clearly the same object, however. if(text2 == text3)

text1 matches text2.
text1 and text2 are the same object (oddly)
text2 and text3 are the same object.

Чтобы проверить, является ли объект строкой или нет, используйте instanceof.

// Here’s a string. / Here’s a string. String text1 = «Hello there»; if(text1 instanceof java.lang.String)

Форматирование строк или преобразование чисел в строки

Если вы просто хотите преобразовать число в строку в Java, это очень просто с помощью toString (). Возможно, вам придется сначала использовать примитивный тип, например, int, для объекта типа Integer или Double.

// An int. int count = 59; // A float. double cost = 57.59; // Convert int to string and display. System.out.println(new Integer(count).toString()); // Convert float to string and display. System.out.println(new Double(cost).toString());

59
57.59
Если вы хотите больше контроля над форматированием ваших чисел, вам нужен метод static format ().

Этот метод работает так же, как sprintf в C или Perl. Вот пример, который форматирует различные числа:

// An int. int count = 59; // A float. double cost = 57.59; // Format the numbers together with some text. // For 'cost', we make the entire number 7 characters // wide (including the .); we left-pad with zeros // and put two numbers after the decimal point. String text = String.format("Count: %d, Cost: $%07.2f", count, cost); System.out.println(text);

Средняя оценка 4 / 5. Количество голосов: 1

Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.

Видим, что вы не нашли ответ на свой вопрос.

Напишите комментарий, что можно добавить к статье, какой информации не хватает.

Источник

Оцените статью