如何处理NumberFormatException
?每当我输入输入时,都不会发生错误,但是当我将复制到控制台时,我曾经遇到异常。
这是我所指的那段代码:
package one;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class A {
public static void main(String args[] ) throws IOException,
NumberFormatException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// int t=Integer.parseInt( br.readLine());
String line = br.readLine().trim();
int t = Integer.valueOf(line);
int f[]=new int[t];
for (int i = 0; i < t; i++) {
f[i]=fib();
}
for(int i=0;i<t;i++)
System.out.println(f[i]);
}
static int fib() throws IOException ,NumberFormatException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine().trim();
int n=Integer.parseInt(br.readLine());
//int n=Integer.valueOf(line);
int a=1,b=2;int c;
if(n==1) return a;
if (n==2) return b;
else {
do {
c=a+b;
a=b;
b=c;
n--;
} while(n>2);
}
return c%1000000007;
}
}
该程序试图找到Fibonacci系列的第n个术语。
答案 0 :(得分:0)
看起来你正在跳过所有其他行,因为你在fib()中调用br.readLine()两次。
String line = br.readLine().trim();
int n=Integer.parseInt(br.readLine());
此外,您反复创建新的BufferedReaders,t + 1
。由于它是一个BufferedReader,我认为行为没有明确定义。你反复阅读System.in的块 - 只注意第二行 - 然后忽略读者并在下一次迭代中创建一个新的。