Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-如何从同一行读取多个值_Java - Fatal编程技术网

Java-如何从同一行读取多个值

Java-如何从同一行读取多个值,java,Java,我正在做一个java作业,我被困在这一部分。基本上,我们要让用户使用扫描器输入三个正的非零整数 应该是这样的 输入三个整数值:2 10 数字(2,2,10)不能形成三角形 我想知道如何对其进行编码,以便输入的“2 10”可以被读取为三个不同的整数,并用逗号分隔。提前非常感谢。试试这个: Scanner scan = new Scanner(System.in); String line = scan.nextLine(); String[] inValues = line.split(" ");

我正在做一个java作业,我被困在这一部分。基本上,我们要让用户使用扫描器输入三个正的非零整数

应该是这样的

输入三个整数值:2 10

数字(2,2,10)不能形成三角形

我想知道如何对其进行编码,以便输入的“2 10”可以被读取为三个不同的整数,并用逗号分隔。提前非常感谢。

试试这个:

Scanner scan = new Scanner(System.in);
String line = scan.nextLine();
String[] inValues = line.split(" ");
int[] values = new int[inValues.length];
for(int i = 0; i < inValues.length; i++){
    values[i] = Integer.parseInt(inValues[i]);
}
Scanner scan=新的扫描仪(System.in);
String line=scan.nextLine();
String[]inValues=line.split(“”);
int[]值=新的int[inValues.length];
for(int i=0;i
您可以按如下方式制作:

String sentence = scanner.nextLine();
您可以:

String[] splittedByComma = sentence.split(","); 
或按空间:

String[] splittedBySpace = sentence.split(" ");
或类似以下示例的数组列表:

然后将它们解析为整数。

使用和for循环读取输入:

Scanner sc = new Scanner(System.in);
int[] values = new int[3];

for (int i = 0; sc.hasNextInt() && i < 3; i++) {
    values[i] = sc.nextInt();
}
Scanner sc=新扫描仪(System.in);
int[]值=新的int[3];
对于(int i=0;sc.hasnetint()&&i<3;i++){
值[i]=sc.nextInt();
}

scanner.nextInt是您的答案

final BufferedReader input = new BufferedReader(
    new InputStreamReader(System.in));

// enter yours 2 2 10 and press Enter
final String line = input.readLine();

final Scanner s = new Scanner(line);
int a = s.nextInt(); // reads 2
int b = s.nextInt(); // reads 2
int c = s.nextInt(); // reads 10

if (a + b > c || a + c > b || b + c > a ) {
    System.out.println(
        "No triangle can be composed from " + a + ", " + b + ", " + c );
}

如果你能展示你迄今为止所做的尝试,那就太好了。你已经创建了扫描仪吗?您已经完成了多少?请尝试
String[]numbers=scanner.nextLine().split(“”;//或.split(“,”)用于csv输入
,然后使用
Integer.parseInt()
将其转换为
int
,尝试使用split()方法:String[]nmbr=“2,2,10”。split(\\,”);或者只是
int[]values=Arrays.stream(scan.nextLine().split(“”)).mapToInt(Integer::parseInt.toArray()BufferedReader
?我同意这是一个答案;但不是答案。难道你不认为输入是纯粹的吗。当我输入
1两个3
123
时会发生什么情况?@tacocate。。。主题启动程序提供了示例“2 10”。如果要支持逗号,请将input.readLine()改为input.readLine().replaceAll(“,”,”)@ChiefTwoPencils,据我所知,java.util.InputMismatchException将发生。