new StringBuilder().append("string1").append("string2").toString()Эта программа объединяет две строки:
public class Concatenation_string {Runtime:
public static void main(String[] args) {
String s1 = "string1";
Строка s2 = "string2";
Строка s1s2 = concatenation_strings_java(s1, s2);
System.out.println(s1s2);
}
public static Строка concatenation_strings_java (Строка s1, Строка s2) {
return s1+s2;
}
}
string1chain2
public String concat(String s)Example:
public class Concatenation_string {Runtime:
public static void main(String[] args) {< br /> String s = "Я один";
s = s.concat(" программист");
System.out.println(s);
}
}
Я программист
a+=bВо-первых, есть небольшая разница в семантике. Если a равно null, затем a.concat(b) запускает NullPointerException, но параметр '+' в операторе a+=b обрабатывает значение a даже если это null. Кроме того, метод concat() принимает только значения String, в то время как оператор '+' преобразует значение в String( используя toString() ). Можно сказать, что метод concat() является более строгим в том смысле, что он принимает.
a.concat(b)
public static void main(String[] args) {Во время выполнения у вас должно быть следующее:
String s = null;
s = s.concat(" программист");
System.out.println(s);
}
Исключение в потоке "main" java.lang.NullPointerExceptionТот же пример с оператором '+':
в Concatenation_string.main(Concatenation_string.java:5)
public static void main(String[] args) {У вас должен получиться следующий результат:
String s = null;
s = s + программист;
System.out.println(s);
}
nullprogrammerИтак, как мы уже говорили ранее, оператор '+' эквивалентно:
a = new StringBuilder()
.append(a)
.append(b)
.toString();
String result = new StringBuilder(15).append(name).append(" ").append(firstname).toString();Вы можете увидеть, как легко объединить несколько строк с помощью StringBuilder. Однако не забудьте инициализировать StringBuilder емкостью, равной количеству символов в конечной строке. Это предотвратит потерю неиспользуемой памяти за счет правильной инициализации нашей строки и уменьшит время процессора.
public static void main(String[] args) {Output:
String court ="Court of";
Строка module_math ="math";
/* StringBuilder */
String module_res = "networks";
int length = court.length()+module_math.length();
StringBuilder sb = new StringBuilder(length);
sb.append(court).append(module_math);
Строка res = sb.toString();
System.out.println(res);
/* StringBuilder */
length = court.length()+module_math.length();
StringBuffer sBuffer = new StringBuffer(length);
sb.append(" и").append(court).append(module_res);
res = sb.toString();
System.out.println(res);
}
Math Courtyard
Математический двор и сеть Courtyard
public static void main(String[] args) {Результаты для 10000 операций конкатенации:
int nb_op=10000;
Строка s="";
double t1,t2,time;
t1= System.currentTimeMillis();
for(int i = 0 ; i < nb_op; i++)
s += "*";
t2 = System.currentTimeMillis();
время = t2-t1;
System.out.println("+: "+time);
s="";
t1= System.currentTimeMillis();
for(int i = 0 ; i < nb_op; i++)
s.concat("*");
t2 = System.currentTimeMillis();
время = t2-t1;
System.out.println("concat: "+time);
StringBuilder sb=new StringBuilder();
t1= System.currentTimeMillis();
for(int i = 0 ; i < nb_op; i++)
sb.append("*");
t2 = System.currentTimeMillis();
время = t2-t1;
System.out.println("StringBuilder: "+time);
StringBuffer sBuffer=new StringBuffer();
t1= System.currentTimeMillis();
for(int i = 0 ; i < nb_op; i++)
sBuffer.append("*");
t2 = System.currentTimeMillis();
время = t2-t1;
System.out.println("StringBuffer: "+time);
}
+: 180.0
concat: 13.0
StringBuilder: 2.0
StringBuffer: 4.0
![]() |
Время в миллисекундах на 10000 операций |
Please disable your ad blocker and refresh the window to use this website.