Как конкатенировать символы в java?
Как вы объединяете символы в java? Конкатенация строк потребует только +
между строками, но конкатенация символов с использованием +
изменит значение char на ascii и, следовательно, даст числовой вывод. Я хочу сделать System.out.println(char1+char2+char3...
и создать такое строковое слово.
Я мог бы сделать
System.out.print(char1);
System.out.print(char2);
System.out.print(char3);
Но это приведет меня только к символам в 1 строке. Мне нужно это как строка. Любая помощь будет оценена.
Спасибо
Ответы
Ответ 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();
Изменить: как указано в ярлыке, вы также можете сделать это:
"" + char1 + char2 + char3;
Это компилируется следующим образом:
new StringBuilder().append("").append(c).append(c1).append(c2).toString();
Изменить (2). Исправлено сравнение строк, поскольку, как указывает cletus, компилятор обрабатывает ряд строк.
Цель вышеизложенного - проиллюстрировать, что делает компилятор, а не сообщать вам, что вы должны делать.
Ответ 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, поэтому лучше оставить его как есть. Компилятор знает, что лучше всего в этом отношении.
Ответ 3
Если у вас есть куча символов и вы хотите связать их с цепочкой, почему бы не сделать
System.out.println("" + char1 + char2 + char3);
?
Ответ 4
Вам нужно сообщить компилятору, что вы хотите выполнить конкатенацию String, запустив последовательность со строкой, даже пустой. Например:
System.out.println("" + char1 + char2 + char3...);
Ответ 5
Вы можете использовать конструктор String.
System.out.println(new String(new char[]{a,b,c}));
Ответ 6
System.out.println(char1+""+char2+char3)
или
String s = char1+""+char2+char3;
Ответ 7
Вам нужен объект String некоторого описания для хранения вашего массива конкатенированных символов, так как тип char
будет содержать только один символ. например,
StringBuilder sb = new StringBuilder('a').append('b').append('c');
System.out.println(sb.toString);
Ответ 8
инициалы открытого класса {
public static void main (String [] args) {
char initialA = 'M';
char initialB = 'P';
char initialC = 'T';
System.out.println("" + initialA + initialB + initialC );
}
}
Ответ 9
Я действительно не считаю себя программистом на Java, но просто подумал, что добавлю его здесь "для полноты"; используя статический метод (C-inspired) String.format
:
String s = String.format("%s%s", 'a', 'b'); // s is "ab"
Ответ 10
простой пример выбора символа из строки и добавления к строковой переменной
private static String findaccountnum (имя владельца строки, строка для мобильных устройств) {
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;
}
Ответ 11
System.out.print(a + "" + b + "" + c);