簡體   English   中英

如何在Java中的字符串中的空格之間導出數字?

[英]How can I export numbers between spaces in a string in Java?

我想從鍵盤輸入這樣的String “ 5 4 34”。 如何導出空格之間的數字? 還要將它們導出到int[]數組中,然后在屏幕上打印出來。

您可以使用String.split("\\\\s")String拆分為String[] ,然后在每個元素上使用Integer.parseInt()以將數字作為int來獲取。

另外,您可以使用Scanner及其nextInt()方法

由於其他人已經向您展示了如何使用split()完成此操作,因此這里有一個示例,如何直接從System.in使用Scanner進行操作(我假設您想要的是因為您說的是從鍵盤上讀取的,當然您可以使用任何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));

添加一個異常處理程序,您就可以保持良好狀態:

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]);
}
    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 ] );
    }
String string = "5 4 34";
String[] components = string.split(" "); // [5, 4, 34]

沒有太多樣板:

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM