“线程中的异常”;“主要”;java.lang.NumberFormatException:

“线程中的异常”;“主要”;java.lang.NumberFormatException:,java,parsing,exception,bufferedreader,parseint,Java,Parsing,Exception,Bufferedreader,Parseint,我正在用java执行代码,但每次都会出现数字异常错误。请帮忙 class TestClass { public static void main(String args[]) throws IOException { BufferedReader inp = new BufferedReader (new InputStreamReader(System.in)); String input = inp.readLine(); //Scanner sc = new Scanner(S

我正在用java执行代码,但每次都会出现数字异常错误。请帮忙

class TestClass {
public static void main(String args[]) throws IOException {
  BufferedReader inp = new BufferedReader (new InputStreamReader(System.in));
  String input = inp.readLine();
  //Scanner sc = new Scanner(System.in);
  StringTokenizer stk = new StringTokenizer(input);
  int n = Integer.parseInt(stk.nextToken());
  int q = Integer.parseInt(stk.nextToken());
  int [] arr = new int[n];
  int [] st = new int [n];
  for(int i =0;i<n;i++){
    arr[i] = Integer.parseInt(stk.nextToken());
     st[i] = fib(arr[i]);

  }  
while(q>0){
    int l = Integer.parseInt(stk.nextToken());
    int r = Integer.parseInt(stk.nextToken());
     System.out.println(gcd(st,l,r));
    q--;
}
class测试类{
公共静态void main(字符串args[])引发IOException{
BufferedReader inp=新的BufferedReader(新的InputStreamReader(System.in));
字符串输入=inp.readLine();
//扫描仪sc=新的扫描仪(System.in);
StringTokenizer stk=新的StringTokenizer(输入);
int n=Integer.parseInt(stk.nextToken());
intq=Integer.parseInt(stk.nextToken());
int[]arr=新的int[n];
int[]st=新的int[n];
对于(int i=0;i0){
int l=Integer.parseInt(stk.nextToken());
int r=Integer.parseInt(stk.nextToken());
系统输出打印LN(gcd(st,l,r));
q--;
}
我不断收到错误消息:

线程“main”java.lang.NumberFormatException中的异常:用于输入 字符串:“3 2”在 forInputString(NumberFormatException.java:65) 位于java.lang.Integer.parseInt(Integer.java:580) java.lang.Integer.parseInt(Integer.java:615)位于 main(main.java:14)


请尝试改用拆分方法:

而不是:

StringTokenizer stk=新的StringTokenizer(输入)

int n=Integer.parseInt(stk.nextToken())

intq=Integer.parseInt(stk.nextToken())

使用:

[]=input.split(“”)中的字符串;

int n=Integer.parseInt(在[0]中);


int q=Integer.parseInt(在[1]中);

尝试改用split方法:

而不是:

StringTokenizer stk=新的StringTokenizer(输入)

int n=Integer.parseInt(stk.nextToken())

intq=Integer.parseInt(stk.nextToken())

使用:

[]=input.split(“”)中的字符串;

int n=Integer.parseInt(在[0]中);


intq=Integer.parseInt(在[1]);

您的输入是什么,什么是
fib()
gcd()
?您正在尝试解析数字
3 2
。这是一个错误,您无法解析带空格的字符串。请尝试使用TryParse方法以避免异常,但如果您有错误的输入值,例如
3 2
程序将不会打印数字…我看不到任何方法可以从您在此处显示的程序中获取该特定错误.有什么你没有告诉我们的吗?你能显示你输入的
系统吗?在
中?你的输入是什么,fib()和
gcd()是什么
?您正在尝试解析数字
3 2
。这是一个错误,您无法解析带空格的字符串。请尝试使用TryParse方法以避免异常,但如果您有错误的输入值,例如
3 2
程序将不会打印数字…我看不到任何方法可以从您在此处显示的程序中获取该特定错误.有什么你没告诉我们的吗?你能在
中显示你输入的
系统吗?