Java从单行读取多个int

Ste*_*ven 26 java input java.util.scanner

我正在研究一个程序,我希望允许用户在出现提示时输入多个整数.我曾尝试使用扫描仪,但我发现它只存储用户输入的第一个整数.例如:

输入多个整数:1 3 5

扫描仪只能获得第一个整数1.是否可以从一行获得所有3个不同的整数,并且以后能够使用它们?这些整数是我需要根据用户输入操作的链表中数据的位置.我无法发布我的源代码,但我想知道这是否可行.

Pra*_*uis 25

我一直在hackerearth上使用它

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String  lines = br.readLine();    

    String[] strs = lines.trim().split("\\s+");

    for (int i = 0; i < strs.length; i++) {
    a[i] = Integer.parseInt(strs[i]);
    }
Run Code Online (Sandbox Code Playgroud)


Bit*_*nja 10

你想把数字作为一个字符串,然后String.split(" ")用来获得3个数字.

String input = scanner.nextLine();    // get the entire line after the prompt 
String[] numbers = input.split(" "); // split by spaces
Run Code Online (Sandbox Code Playgroud)

数组的每个索引都将保存一个字符串表示的数字,可以使其成为ints byInteger.parseInt()


E.A*_*.A. 10

试试这个

public static void main(String[] args) {
    Scanner in = new Scanner(System.in); 
    while (in.hasNext()) {
        if (in.hasNextInt())
            System.out.println(in.nextInt());
        else 
            in.next();
    }
}
Run Code Online (Sandbox Code Playgroud)

默认情况下,扫描程序使用分隔符模式"\ p {javaWhitespace} +",它将至少一个空格作为分隔符.你不必做任何特别的事.

如果要匹配空格(1或更多)或逗号,请将扫描程序调用替换为此

Scanner in = new Scanner(System.in).useDelimiter("[,\\s+]");
Run Code Online (Sandbox Code Playgroud)


sen*_*982 8

Scanner有一个名为hasNext()的方法:

    Scanner scanner = new Scanner(System.in);

    while(scanner.hasNext())
    {
        System.out.println(scanner.nextInt());
    }
Run Code Online (Sandbox Code Playgroud)

  • 它一直在要求输入。行结束后如何停止? (2认同)

Sk1*_*1X1 5

如果你知道你将得到多少整数,那么你可以使用nextInt()方法

例如

Scanner sc = new Scanner(System.in);
int[] integers = new int[3];
for(int i = 0; i < 3; i++)
{
    integers[i] = sc.nextInt();
}
Run Code Online (Sandbox Code Playgroud)


小智 5

爪哇 8

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int arr[] = Arrays.stream(in.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
Run Code Online (Sandbox Code Playgroud)


adv*_*v12 0

您可能正在寻找 String.split(String regex)。使用“”作为您的正则表达式。这将为您提供一个字符串数组,您可以将其单独解析为整数。