2012-04-30 45 views

回答

0

無很多樣板:

List <Integer> numbers = new ArrayList <Integer>(); 
for (String number : "5 4 34";.split ("\\s+")) { 
    int v = Integer.parseInt (number); 
    System.out.println (v); 
    numbers.add (v); 
} 

或使用掃描儀:

Scanner scanner = new Scanner ("5 4 34"); 
List <Integer> list = new ArrayList <Integer>(); 
while (scanner.hasNextInt()) { 
    int v = scanner.nextInt(); 
    list.add (v); 
    System.out.println (v); 
} 
1
String[] stringArray = "5 4 34".split(" "); 
    int[] intArray = new int[ stringArray.length ]; 

    for (int i = 0 ; i < stringArray.length ; i++) 
    { 
     intArray[ i ] = Integer.parseInt(stringArray[ i ]); 
    } 
+0

有沒有聽說過簡化的for-loop? –

1
String string = "5 4 34"; 
String[] components = string.split(" "); // [5, 4, 34] 
+0

請注意,它不會讓你'int's,一個後處理將不得不做'int's。 – amit

2

添加異常處理程序,你在良好的狀態是:

String values = "5 4 34"; 
String [] tokens = values.split("\\s+"); 
List<Integer> numbers = new ArrayList<Integer>(); 
for (String number : tokens) { 
    numbers.add(Integer.valueOf(number); 
} 

或者這樣:

String values = "5 4 34"; 
String [] tokens = values.split("\\s+"); 
int [] numbers = new int[tokens.length]; 
for (int i = 0; i < tokens.length; ++i) { 
    numbers[i] = Integer.valueOf(tokens[i]); 
} 
5

您可以使用String.split("\\s")分裂StringString[]然後在每個元素上使用Integer.parseInt()以獲得編號爲int

或者,你可以使用一個Scanner,其nextInt()方法

既然別人已經向您展示瞭如何將其與split()來完成,這裏是一個例子,如何用ScannerSystem.in做到這一點,直接(我假設你想要什麼,因爲你說你從鍵盤讀取它,當然你可以使用任何ReadableString建立你Scanner):

代碼:

Scanner inputScanner = new Scanner(System.in); 
Scanner scanner = new Scanner(inputScanner.nextLine()); 
List<Integer> list = new ArrayList<Integer>(); 
while (scanner.hasNextInt()) { 
    list.add(scanner.nextInt()); 
} 
Integer[] arr = list.toArray(new Integer[0]); 

,或者如果你想要一個int[]而不是Integer[],而不是最後一行,使用:

int[] arr = new int[list.size()]; 
int i = 0; 
for (Integer x : list) { 
    arr[i++] = x; 
} 

要打印陣列只打印的Arrays.toString()結果:

System.out.println(Arrays.toString(arr)); 
+0

+1的詳細解釋+後續:-) – assylias

+0

阿米特和所有的人都謝謝。我還有一個問題。當我鍵入我想要的字符串時,我按Enter鍵以在屏幕上顯示數組。隨着你的解決方案,它發生時,我按任何字符,然後按回車。 – kosar

+0

@ user1366336:我編輯了答案(代碼的第一行),事情是'掃描器'在按下輸入後等待下一個int以解決它,可以使用兩個掃描器,一個用於輸入,一個用於輸入爲解析,看看編輯的代碼。這能解決你的問題嗎? – amit

相關問題