2012-07-03 3 views
1

Мне нужно преобразовать вектор строки в простую строку. Я не знаю, как это сделать. Я попробовал различные решения, такие какКак преобразовать векторную строку в простую строку

for(int i=1; i < easy.length; i++){ 

easyPuzzle = easy[i].toString(); 

} 

System.out.println(" " + easyPuzzle); 

но это решение печатает только го элемента, а не всю строку вектора.

ответ

7

Вы держите переназначить новое значение easyPuzzle, когда вы действительно хотите, чтобы сцепить:

easyPuzzle += easy[i].toString(); 

Если easy.length велико, то может иметь смысл использовать StringBuilder, который является более эффективным при конкатенации, чем строки:

StringBuilder builder = new StringBuilder(); 
for(int i=1; i < easy.length; i++){ 
    builder.append(easy[i].toString()); 
} 
easyPuzzle = builder.toString(); 

Также, запустив цикл for i=1, вы исключите первый элемент. Не уверен, что это специально или нет. Если нет, начинайте с i = 0.

В качестве альтернативы, чтобы сохранить боль при написании цикла самостоятельно, вы можете использовать @Manoj's answer, который заменяет ваш код на одну строку.

9

Использование ToString в Arrays классе

Arrays.toString(easy); 
+2

+1, обратите внимание, что в случае более чем 1-мерных массивов лучше использовать 'Arrays.deepToString (a)' – mishadoff

+0

@mishadoff хороший. – Manoj

2

Я рекомендую вам использовать StringBuilder с append(<data>) способом, а затем преобразовать его в String.

StringBuilder data = new StringBuilder(); 
for(int i = 1; i < easy.length; i++){ 
    data.append(easy[i].toString()); 
} 
easyPuzzle = data.toString(); 

String неизменен поэтому работа с ним гораздо больше потреблять. Когда вы работаете с String, я рекомендую вам использовать StringBuilder, эффективнее и быстрее.

Обновление: @ Маной ответ очень полезен.

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