我在输入5 6时不断收到java.lang.ArrayIndexOutOfBoundsException

时间:2015-03-28 08:55:08

标签: java

我在输入时不断收到java.lang.ArrayIndexOutOfBoundsException: 5 6

请假设我只输入两个与他们之间有空格的数字

尝试了next()nextLine()

import java.util.Scanner;

public class HelloWorld{

     public static void main(String []args) throws Exception{
        System.out.println("Hello World");

         Scanner in = new Scanner(System.in);
         String NandK=in.nextLine();
        String[] pow=NandK.split("\\s+");

        String valueOfN=pow[0];
        String valueOfK=pow[1];
        System.out.println(valueOfN);
        System.out.println(valueOfK);

     }
}

输出

  

Hello World

     

5 6

     

线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:1

     

在HelloWorld.main(HelloWorld.java:13)

2 个答案:

答案 0 :(得分:0)

您使用了错误的正则表达式

使用"\\s+"代替"//s+"

并使用in.nextLine()代替in.next()

输出

Hello World
5 6
5
6
BUILD SUCCESSFUL (total time: 2 seconds)

答案 1 :(得分:0)

因为输入时不会修复多少个字符,所以最好使用for循环

public static void main(String[] args) {
    System.out.println("Hello World");

    Scanner in = new Scanner(System.in);
    String NandK = in.nextLine();
    String[] pow = NandK.split("\\s+");

    for(int i = 0;i<pow.length;i++){
        String valueOfN = pow[i];
        System.out.println(valueOfN);

    }