2016-10-08 2 views
-1

У меня есть набор строк в качестве ArrayList и пустую переменную типа String:Как объединить несколько строк в один с помощью оператора `= +`? - Java

String combination; 

ArrayList<String> sList = new ArrayList<String>(); 
sList.add("H"); 
sList.add("e"); 
sList.add("l"); 
sList.add("l"); 
sList.add("o"); 

Я пытаюсь объединить все буквы так, что она будет печатать «Hello».

Я попытался использовать для цикла, как это:

for (int x = 0; x < sList.size(); x++) { 

    combination =+ sList.get(x); 
} 

Но когда я пытаюсь скомпилировать это, он говорит: error: bad operand type String for unary operator '+++'

Как совместить эти письма с петлей?

(Обратите внимание, что размер sList может измениться)

+3

Это будет '+ =', а не '= +'. –

+0

Вы пробовали 'сочетание = сочетание + sList.get (x)'? –

ответ

0

Изменение: combination =+ sList.get(x); в combination +=sList.get(x); или сделать combination =combination+sList.get(x);

+2

Одним из правил здесь является то, что проблемы, вызванные типографскими ошибками (например, '= +' вместо '+ ='), отключены от темы и должны быть закрыты, а не отвечать. Я не уверен, достаточно ли вашей оценки репутации, чтобы проголосовать за закрытие вопроса. В любом случае, вы скоро приедете. –

+0

Я пока не могу голосовать. – HaroldSer

+1

Ничего. Если вы продолжаете отвечать на вопросы по теме, вы доберетесь туда слишком долго. Удивительно, что кто-то оставил этот ответ, хотя для меня это просто кажется. –

2

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

String combination = ""; 

     ArrayList<String> sList = new ArrayList<String>(); 
     sList.add("H"); 
     sList.add("e"); 
     sList.add("l"); 
     sList.add("l"); 
     sList.add("o"); 

     for (int x = 0; x < sList.size(); x++) { 
      combination += sList.get(x); 

     } 
     System.out.println(combination); 

      ---------------------OR------------------------------ 
     StringBuffer buffer = new StringBuffer(sList.size()); 
     for (String str : sList) { 
      buffer.append(str); 
     } 

     System.out.println(buffer.toString()); 

просто держать внимание, что строки являются неизменными, поэтому они возвращаются новый объект е и вы также можете использовать stringbuilder/stringbuffer, который рекомендуется для конкатенации строк, и оба продукта печати указывают тот же результат.

+0

Это немного сложно, для меня это отлично работает, не используя класс StringBuffer. – Kcits

+1

@ TaeHyun.A Вы действительно должны использовать подход StringBuffer, производительность важна! – Journeycorner

+1

@AsteriskNinja StringBuffer уже может быть инициализирован с помощью sList.size() – Journeycorner

Смежные вопросы