Java добавляет символы в строку

У меня есть две строки в программе Java, которые я хочу смешать определенным образом, чтобы сформировать две новые строки. Чтобы сделать это, я должен взять некоторые составляющие символы из каждой строки и добавить их, чтобы сформировать новые строки. У меня есть такой код (this.eka и this.toka являются исходными строками): I '

String muutettu1 = new String();
String muutettu2 = new String();
muutettu1 += this.toka.charAt(0) + this.toka.charAt(1) + this.eka.substring(2);
muutettu2 += this.eka.charAt(0) + this.eka.charAt(1) + this.toka.substring(2);
System.out.println(muutettu1 + " " + muutettu2);

Я получаю числа для частей .charAt (x), так как мне преобразовать символы в строку?

 JRL31 окт. 2009 г., 15:39
Как показывает ваш пример, вы также можете использоватьsubstring вернуть строку напрямую. Любая причина, почему вы используете обаcharAt а такжеsubstring в том же заявлении?
 Lauri Lehtinen31 окт. 2009 г., 15:39
Приятно видеть финский код ;-)

Ответы на вопрос(5)

Character.toString.

Лучшее решение:

String muutettu1 = toka.substring(0,2) + eka.substring(2);
String muutettu2 = eka.substring(0,2) + toka.substring(2);

Вы должны создать метод для этой операции, так как он является избыточным.

Инстанизация строкового объектаnew String() не нужно Когда вы добавляете что-то к пустой строке, результатом будет добавленное содержимое.

 Thomas Jung31 окт. 2009 г., 15:53
О нет. Позволять'быть мирным.
 JRL31 окт. 2009 г., 15:51
Rep ВОЙНА! Позволять'с готовьтесьгромыхание !! ;-)
 jitter31 окт. 2009 г., 15:41
спасибо за кражу моего ответа
 Thomas Jung31 окт. 2009 г., 15:45
Это простое манипулирование строками, почему "украсть» Это? Ваш код выполняет 2 бесполезных выделения строк и a.substring (0,1) + a.substring (1,2) == toka.substring (0,2). Поэтому я не мог ничего украсть у тебя. Подстрока не ракетостроение.
Решение Вопроса

Просто используйте всегда используйтеsubstring() вместоcharAt()

muutettu1 += toka.substring(0,1) + toka.substring(1,2) + eka.substring(2);
muutettu2 += eka.substring(0,1) + eka.substring(1,2) + toka.substring(2);

например когда положение не являетсят фиксированные значения, но переменные

muutettu1 += toka.substring(x,x+1) + toka.substring(y,y+1) + eka.substring(z);
muutettu2 += eka.substring(x,x+1) + eka.substring(y,y+1) + toka.substring(z);

где x, y, z - переменные, содержащие позиции, из которых нужно извлечь

способами: 1) String.valueOf (a) с обозначением целого числа 2) Integer.toString (a)

Эта вещь может добавлять символы в конец строки

StringBuilder strBind = new StringBuilder("Abcd");
strBind.append('E');
System.out.println("string = " + str);
//Output => AbcdE
str.append('f');
//Output => AbcdEf
 frieder12 янв. 2016 г., 23:18
Что это? Где жеstr родом из? Что ты вообще делаешь?
StringBuilder builder = new StringBuilder();
builder
   .append(this.toka.charAt(0))
   .append(this.toka.charAt(1))
   .append(this.toka.charAt(2))
   .append(' ')  
   .append(this.eka.charAt(0))
   .append(this.eka.charAt(1))
   .append(this.eka.charAt(2));
System.out.println (builder.toString());
 Thomas Jung31 окт. 2009 г., 15:58
Я думаю, ваш результат будет неверным. subString (2) - строка, начинающаяся с индекса 2.
 Thomas Jung31 окт. 2009 г., 16:59
a + b будет скомпилирован в новый StringBuilder (). append (a) .append (b) .toString () в любом случае.
 alphazero31 окт. 2009 г., 16:22
Да, я пропустил это. В любом случае, append - перегруженный метод, и вы также можете передавать его в виде Strings. Существенным моментом здесь было не использовать String напрямую и использовать StringBuilder (или StringBuffer, если используется более старая версия JRE), чтобы минимизировать затраты производительности.
 user161040613 дек. 2012 г., 01:58
Мне очень нравится этот ответ, но почему бы не улучшитьfor цикл? например.for(String i : this.toka) и сделать то же самое дляthis.eka
 alphazero13 дек. 2012 г., 04:09
Попробуйте javap на обоих вариантах. (Haven»Я сделал это сам, но) вероятно, итеративная форма будет выполнять избыточное распределение для 2 управляющих структур (возможно, развернутых компилятором). Также обратите внимание, что OP 's Q не указывает, что исходные строки на самом деле заканчиваются указанными индексами, поэтому он должен быть явным для формы цикла.

Ваш ответ на вопрос