2016-05-13 7 views
1

Я преобразовал строку в массив и превратил ее в целочисленный массив. Я также умножил все значения в массиве на 3, и он работает. Мой вопрос заключается в том, как я могу сделать это так, чтобы выход показывал только [3,6,9,15] вместо того, что было показано в блоке ниже.Java String in Array

public static void main(String[] args) { 
    String arr = "1,2,3,5"; 

    String[] items = arr.split(","); 

    int[] results = new int[items.length]; 

    for (int i = 0; i < items.length; i++) { 
      results[i] = Integer.parseInt(items[i]);  
      results[i] *= 3; 
      System.out.println(java.util.Arrays.toString(results)); 

    } 


    } 

OUTPUT: 
[3, 0, 0, 0] 
[3, 6, 0, 0] 
[3, 6, 9, 0] 
[3, 6, 9, 15] 
+0

Переместить расположение 'System.out.println (...)' вне цикла? – KevinO

ответ

2

Перемещение печати наружу петли

for (int i = 0; i < items.length; i++) { 
     results[i] = Integer.parseInt(items[i]);  
     results[i] *= 3; 
} 

System.out.println(java.util.Arrays.toString(results)); 
+0

wooow ... Я не понимал, что это было там, и я провел 30 минут, просматривая Интернет, прежде чем спрашивать здесь. большое спасибо. – Sherwin

+0

Добро пожаловать –

1

В Java 8+ вы могли бы использовать лямбда и поток токенов (и я хотел бы добавить \\s* поддержать дополнительный пробел вокруг запятой к , регулярное выражение), а затем использовать пару функций карты. Нечто подобное,

String arr = "1,2,3,5"; 
int[] results = Stream.of(arr.split("\\s*,\\s*")).mapToInt(Integer::parseInt) 
     .map(x -> x * 3).toArray(); 
System.out.println(Arrays.toString(results)); 

Выход (по запросу)

[3, 6, 9, 15]