2016-04-25 6 views
0

Zum Beispiel gibt der Benutzer "1 2 3 4" ein, wie extrahiere ich diese vier Zahlen und platziere sie an verschiedenen Stellen in einem Array?Wie bekomme ich jede Zahl eine Benutzereingaben als Menge von Zahlen in Zeichenfolge mit jeder durch Leerzeichen getrennten Zahl?

Ich bin nur ein Anfänger also bitte entschuldigen Sie meinen Mangel an Wissen.

for (int i = 0; i < students; i++) { 
    scanner.nextLine(); 
    tempScores[i] = scanner.nextLine(); 

    tempScores[i] = tempScores[i] + " "; 
    tempNum = ""; 
    int scoreCount = 0; 

    for (int a = 0; a < tempScores[i].length(); a++) { 
     System.out.println("Scorecount " + scoreCount + " a " + a); 

     if (tempScores[i].charAt(a) != ' ') { 
      tempNum = tempNum + tempScores[i].charAt(a);    
     } else if (tempScores[i].charAt(a) == ' ') { 
      scores[scoreCount] = Integer.valueOf(tempNum); 
      tempNum = ""; 
      scoreCount ++; 
     } 
    } 
+3

['split (" ")'] (https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split%28java.lang.String%29) – Andreas

Antwort

1

können Sie String.split(String) verwenden, die einen regulären Ausdruck nimmt, \\s+ für ein oder mehrere Leerzeichen. Dann können Sie Integer.parseInt(String) bis Parse die String (s) zu int (s) verwenden. Schließlich können Sie Arrays.toString(int[]) verwenden, um Ihre int[] anzuzeigen. So etwas wie

String line = "1 2 3 4"; 
String[] tokens = line.split("\\s+"); 
int[] values = new int[tokens.length]; 
for (int i = 0; i < tokens.length; i++) { 
    values[i] = Integer.parseInt(tokens[i]); 
} 
System.out.println(Arrays.toString(values)); 

Ausgänge

[1, 2, 3, 4] 
+0

Funktioniert das immer noch, wenn die Zahlen mehr als eine Ziffer sind? –

+0

@JakeXia Ja. Solange die Zahl ein gültiges 'int' ist. –

0

Wenn Sie ganz sicher sind, dass die Zahlen, die durch Leerzeichen getrennt werden, dann können Sie nur die Methode split() in String verwenden, wie unten und analysieren individuell:

String input = sc.nextLine(); (Use an sc.hasNextLine() check first) 
if (input != null || !input.trim().isEmpty()) { 
    String [] numStrings = input.split(" "); 
    // convert the numbers as String to actually numbers by using 

Integer.parseInt(String num) method. 
} 
Verwandte Themen