2016-11-03 2 views
0

У меня есть дополнительная запятая, появляющаяся при распечатке набора в конце. Пример здесь:Дополнительная запятая, созданная из массива?

{1} {1, 2, 3, 4}

Это часть печати запятой. Я читал о StringJoiner, но не уверен, что могу это сделать как String.

if (works[i]) { 
    System.out.print(" "); 
    System.out.print(i+5 + ",");   
} 

Также попробовал следующее:

String str = i+5 + ","; 
str = str.replaceAll(", $", ""); 
System.out.print(str); 

Тогда он будет перегибать:

{1,2 3,4} 
{1} 
+0

Не уверен, чего вы хотите достичь. Удалить запятую после '4'? Что такое 'i + 5'? –

+1

'Arrays.stream (data) .map (Objects :: toString) .collect (Collectors.joining (", "," {","} "))'. –

ответ

-1

Вы можете использовать потоки:

int[] array = new int[] { 1, 2, 3, 4 }; 
String collect = 
    Arrays.stream(array).mapToObj(i -> String.valueOf(i)).collect(Collectors.joining(",")); 
System.out.println(collect); 
+0

Нет. Это создает неправильный вывод. Также 'String :: valueOf' немного более кратким. –

0

после вашего окончательного разделенных запятыми строки построен, используйте следующий код для пересылки до последней запятой:

str = str.replaceAll(",$", ""); //regex which will replace last comma 

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

public class Test { 

    public static void main(String[] args) { 
     int i = 0; 
     String str = "1,2,3,"; 
     str = str.replaceAll(",$", ""); // You put space between , and $ here.. 
     System.out.print(str); 
    } 

} 

Выход:

1,2,3

+0

Я уже пробовал это. Regex тоже не работает. – chatlover

+0

Посмотреть мой отредактированный пост. Также обратите внимание, что в вашем коде у вас есть ** пробел ** между ** запятой (,) ** и ** долларом ($) **: '(", $ "," ")'. Я удалил его в моем опубликованном коде: '(", $ "," ")' –

+0

@ chatlover- У вас появилась возможность посмотреть мой отредактированный вопрос? –

-1

Попробуйте это ..

Я предполагаю, что IF блок в цикле

if(works[i]){ 
    String str = i+5 + ","; 
} 

вне петли для этого делать.

str = str.substring(0, str.length()-1); 
System.out.print(str); 
Смежные вопросы