java - 我正在尝试以带有分隔空格的特定形式输入
问题描述
我正在尝试以特定形式输入,第一行包含查询数,接下来的行包含四个由单个空格分隔的整数。我尝试像下面的代码那样编写,但我收到错误“找不到符号”。例如 :-
1
1 1 3000 100000000
2
5 5 5000 100020000
7 7 2444 21412414124
import java.io.*;
import java.util.*;
public class Solution {
public void solveProb(int a, int d, int n, int x) {
System.out.println(a+d + n + x);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int q = scan.nextInt();
while (q > 0) {
String[] s = scan.nextLine().split(" ");
solveProb(Integer.parseInt(s[0]), Integer.parseInt(s[1]), Integer.parseInt(s[2]), Integer.parseInt(s[3]));
q-- ;
}
}
}
解决方案
你在应该使用Integer.parseInt(String[0])
的时候使用 with等等。您使用.String[0]
s[0]
variableName[index]
另外要打电话solveProb
,你要么需要制作它,要么用它public static void
创建一个Object
类并Solution
用Solution sol = new Solution()
它调用它sol.solveProb(VALUES)
编辑:要修复循环之前的NumberFormatException
添加,如下所示:scan.nextLine();
while
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int q = scan.nextInt();
scan.nextLine();
while (q > 0)
{
String[] s = scan.nextLine().split(" ");
solveProb(Integer.parseInt(s[0]), Integer.parseInt(s[1]), Integer.parseInt(s[2]), Integer.parseInt(s[3]));
q-- ;
}
}
public static void solveProb(int a, int d, int n, int x)
{
System.out.println(a+d + n + x);
}
您需要在使用后进入下一行,nextInt
因为您尝试调用nextLine
并阅读它而不先进入下一行。
保持循环的内部相同,不要删除另一个nextLine
。
推荐阅读
- r - R闪亮的导航栏到小型设备上的汉堡包
- c++ - C++如何复制一个FILE *指针
- android - 在 MapEngine 初始化之前无法创建 HERE SDK 对象。请参阅 MapEngine.init()
- amazon-web-services - What is definition of Amazon S3 prefix
- c++ - 这是使用 union vs reinterpret_cast 的合适案例吗
- javascript - 制表符:编辑嵌套值并获取父对象
- javascript - 如何解析没有转义双引号的 Angular $http 响应?
- python - 为什么 collections.Counter 运行速度比直接运行它的源代码快
- c# - 如何验证 json 是类对象的正确表示?
- c++ - gtest - 参数化测试限制,编译错误