例如: 22 42
这些是由空格分隔的两位数字。请建议我可以使用的任何 Java 函数将其读取为两个单独的数字。
您可以读取输入行并将其拆分为数组吗?
Scanner sc = new Scanner(System.in)
String userInput = sc.nextLine();
int [] inputSplit = userInput.split("\s+");
在此处阅读有关\s+
和String
模式的更多信息
在此处阅读有关Scanner
的更多信息
使用 Scanner#nextInt()
并将值分配为
String input = "22 44";
Scanner s = new Scanner(input);
if (s.hasNextInt()) {
a = s.nextInt();
}
if (s.hasNextInt()) {
b = s.nextInt();
}
s.close();
如果希望输入中包含多个int
,请改用while
循环。
String input = "22 44 55 66";
Scanner s = new Scanner(input);
List<Integer> ints = new ArrayList<Integer>();
while (s.hasNextInt()) {
ints.add(s.nextInt());
}
s.close();
System.out.println("How many ints? " + ints.size()); // 4
要改为从控制台读取数字,请在System
的输入InputStream
之上创建一个Scanner
。而且,完成后不要忘记打电话给Scanner#close()
。
Scanner s = new Scanner(System.in);
可以使用 split 方法从一行中解析整数。
Scanner input = new Scanner(System.in);
System.out.println("Enter integer separated by spaces: ");
String input = sc.nextLine();
String[] numberString = input.split("\s+");
现在你有一个String
数组numberString
你可以把它转换为整数数组,然后使用它 -
for(int i = 0;i < numberString.length;i++)
{
//assuming you have an int array numbers[]
numbers[i] = Integer.parseInt(numberString[i]);
}
希望它会有所帮助。
多谢。
也许这会有所帮助
Scanner sc = new Scanner(System.in);
System.out.println("Enter Numbers");
String in = sc.nextLine();
String [] in1 = in.split("\s+");
System.out.println("Numbers");
for( String n: in1)
{System.out.println(n);
}
输出:
输入数字1 2 3 4 5数字12345
Scanner sc = new Scanner(System.in);
String s1 = sc.next();
String s2 = sc.nextLine();
s2 = s2.replace(" ","");
int num1 = Integer.parseInt(s1);
int num2 = Integer.parseInt(s2);
希望这是有帮助的。