[просто] Используйте + оператор (объединение строк). "your number is" + theNumber + "!" (как указано в другом месте)
[менее простой]: используйте StringBuilder (или StringBuffer).
StringBuilder value; value.append("your number is"); value.append(theNumber); value.append("!");
value.toString();
Я не рекомендую выполнять подобные операции стекирования:
newStringBuilder().append("I").append("like to write").append("confusing code");
Редактировать: начиная с java 5, оператор объединения строк преобразуется компилятором в StringBuilder вызовы. Из-за этого оба описанных выше метода равны.
Примечание: Spaceisavaluablecommodity, как демонстрирует предложение.
Предостережение: приведенный ниже пример 1 генерирует несколько StringBuilder экземпляров и менее эффективен, чем приведенный ниже пример 2
Пример 1
StringBlam= one + two; Blam += three + four; Blam += five + six;
Пример 2
StringBlam= one + two + three + four + five + six;
Ответ 4
"Из коробки" у вас есть 3 способа ввести значение переменной в String по мере того, как вы пытаетесь достичь:
1. Самый простой способ
Вы можете просто использовать оператор + между a String и любым объектом или примитивным типом, он автоматически объединит String и
В случае объекта значение String.valueOf(obj), соответствующее String "null" if, obj является null в противном случае значением obj.toString().
В случае примитивного типа, эквивалент String.valueOf(<primitive-type>).
Пример с не null объектом:
IntegertheNumber=42; System.out.println("Your number is " + theNumber + "!");
Вывод:
Your number is 42!
Example with a null object:
IntegertheNumber=null; System.out.println("Your number is " + theNumber + "!");
Output:
Your number is null!
Пример с примитивным типом:
inttheNumber=42; System.out.println("Your number is " + theNumber + "!");
Вывод:
Your number is 42!
2. Явный способ и потенциально наиболее эффективный
Вы можете использовать StringBuilder (или StringBuffer потокобезопасный устаревший аналог) для сборки своих String с использованием append методов.
Пример:
inttheNumber=42; StringBuilderbuffer=newStringBuilder() .append("Your number is ").append(theNumber).append('!'); System.out.println(buffer.toString()); // or simply System.out.println(buffer)
Вывод:
Your number is 42!
На самом деле именно так последние компиляторы Java преобразуют все String объединения, выполняемые с помощью оператора +, единственное отличие от предыдущего способа заключается в том, что у вас есть полный контроль.
Действительно, компиляторы будут использовать конструктор по умолчанию, поэтому емкость по умолчанию (16), поскольку они понятия не имеют, какой будет конечная длина String для сборки, что означает, что если конечная длина будет больше, чем 16, емкость обязательно будет увеличена, что имеет цену с точки зрения производительности.
Итак, если вы заранее знаете, что размер вашего final String будет больше, чем 16, будет намного эффективнее использовать этот подход для обеспечения лучшей начальной емкости. Например, в нашем примере мы создаем String, длина которого больше 16, поэтому для лучшей производительности его следует переписать как next:
Оптимизированный пример :
inttheNumber=42; StringBuilderbuffer=newStringBuilder(18) .append("Your number is ").append(theNumber).append('!'); System.out.println(buffer)
inttheNumber=42; System.out.println(String.format("Your number is %d!", theNumber)); // Or if we need to print only we can use printf System.out.printf("Your number is still %d with printf!%n", theNumber);
Вывод:
Your number is 42! Your number is still 42 with printf!
Наиболее интересным аспектом этого подхода является тот факт, что у нас есть четкое представление о том, каким будет финал String потому что его гораздо легче читать, поэтому его намного проще поддерживать.