Как вы объединить символы в Java? Конкатенация строк требуют только +
между строк, но конкатенация символов с помощью +
будут меняться на значение типа char в ASCII, и, следовательно, дает численного результата. Я хочу сделать систему.из.метод println(char1+char2+char3... и создать строку слово такой.
Я мог бы сделать
System.out.print(char1);
System.out.print(char2);
System.out.print(char3);
Но, это будет только мне символов в 1 строке. Мне нужно его как строку. Любая помощь будет оценили.
Спасибо
Вы хотите, чтобы строки из них?
String s = new StringBuilder().append(char1).append(char2).append(char3).toString();
Обратите внимание, что
String b = "b";
String s = "a" + b + "c";
На самом деле компилируется в
String s = new StringBuilder("a").append(b).append("c").toString();
Редактировать: как litb указал, вы также можете сделать это:
"" + char1 + char2 + char3;
Что компилирует следующее:
new StringBuilder().append("").append(c).append(c1).append(c2).toString();
Редактировать (2): исправил строку дописывать сравнение с, как Клетус указывает на несколько строк обрабатывается компилятором.
Цель заключается в том, чтобы проиллюстрировать то, что компилятор делает, не скажу вам, что вы должны сделать.
Я не'т собираюсь отвечать на этот вопрос, но здесь есть два ответа (которые получают голоса!) это просто неправильно. Рассмотрим эти выражения:
String a = "a" + "b" + "c";
String b = System.getProperty("blah") + "b";
Первый оценивается в компиляции. Второй оценивается в время выполнения.
Так, *никогда не* заменить постоянной связи (любого типа) с StringBuilder, StringBuffer или тому подобное. Использовать только те, где была вовлечена переменных и, как правило, только тогда, когда вы'вновь добавляя большое операндов или вы'повторного добавления в петлю.
Если символы являются постоянными, это нормально:
String s = "" + 'a' + 'b' + 'c';
Однако, если они не'т считаю этот:
String concat(char... chars) {
if (chars.length == 0) {
return "";
}
StringBuilder s = new StringBuilder(chars.length);
for (char c : chars) {
s.append(c);
}
return s.toString();
}
в качестве подходящего решения.
Однако некоторые могли бы попытаться оптимизировать:
String s = "Name: '" + name + "'"; // String name;
в этом:
String s = new StringBuilder().append("Name: ").append(name).append("'").toString();
Пока это благие намерения, в сухом остатке Дон'Т.
Почему? В качестве другого ответа правильно указаны: компилятор делает это для вас. Так что, если делать это самостоятельно, вы'повторно не позволяя компилятору оптимизировать код или не в зависимости, если его хорошая идея, код труднее читать и его излишне сложным.
Для низкоуровневой оптимизации компилятору лучше оптимизировать код, чем вы.
Пусть компилятор делать свою работу. В этом случае наихудший сценарий заключается в том, что компилятор неявно изменяет ваш код в точности то, что вы написали. Объединение 2-3 строк может быть более эффективным, чем строительство класса StringBuilder, так что это может быть лучше оставить все как есть. Компилятор знает, что лучше в этом отношении.
Если у вас есть куча чаров и хотите их конкатенацию в строку, почему бы не сделать
System.out.println("" + char1 + char2 + char3);
?
публичных инициалы класса {
public static void main (String [] args) {
char initialA = 'M';
char initialB = 'P';
char initialC = 'T';
System.out.println("" + initialA + initialB + initialC );
}
}
Вам нужен объект String каким-нибудь, чтобы держать массив сцепленных символов, так как тип char
будет содержать только один символ. например,
StringBuilder sb = new StringBuilder('a').append('b').append('c');
System.out.println(sb.toString);
Это очень простой подход, чтобы объединить или добавить символ
StringBuilder desc = new StringBuilder();
String Description="this is my land";
desc=desc.append(Description.charAt(i));
простой пример для выбора символа из строки и добавляя к строковой переменной
частная статическую строку findaccountnum(строка holdername, строка мобильного) {
char n1=holdername.charAt(0);
char n2=holdername.charAt(1);
char n3=holdername.charAt(2);
char n4=mobile.charAt(0);
char n5=mobile.charAt(1);
char n6=mobile.charAt(2);
String number=new StringBuilder().append(n1).append(n2).append(n3).append(n4).append(n5).append(n6).toString();
return number;
}
System.out.print(a + "" + b + "" + c);