2016-05-13 16 views
1

文字列を配列に変換し、整数配列にしました。私はまた、配列のすべての値を3倍して動作します。私の質問は、下のブロックに表示されているものの代わりに[3,6,9,15]だけが表示されるようにするにはどうすればいいですか。Java文字列を配列

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
は、ループの外に印刷を移動

あなたは、ラムダを使用してトークンをストリーム(と私はへのカンマの周りの任意の空白をサポートするために、\\s*を追加したいことができ8+ Javaでは

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

正規表現)し、マップ関数のペアを使用します。何かのように、

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]