线程“中的java编程异常出错”;“主要”;java.lang.NumberFormatException
这是显示系列1-(a^2/3!)+(a^4/5!)-(a^6/7!)+。。。。。 我使用递归显示数字的阶乘线程“中的java编程异常出错”;“主要”;java.lang.NumberFormatException,java,Java,这是显示系列1-(a^2/3!)+(a^4/5!)-(a^6/7!)+。。。。。 我使用递归显示数字的阶乘 import java.io.*; class Series{ public static void main(String args[])throws IOException{ int n,a; double sum=0; BufferedReader br=new BufferedReader(new
import java.io.*;
class Series{
public static void main(String args[])throws IOException{
int n,a;
double sum=0;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str;
System.out.println("Enter the value of n & a");
str=br.readLine();
n=Integer.parseInt(str);
str=br.readLine();
a=Integer.parseInt(str);
for(int i=0;i<=n;i++){
sum=sum+(Math.pow(-1,i)*(Math.pow(a,2*i)/fact(2*i+1)));
}
System.out.println(sum);
}
static int fact(int n){
int fact=1,i;
for(i=1;i<=n;i++){
fact=fact*i;
}
return(fact);
}
}
请帮助我,它在线程“main”java.lang.NumberFormatException中显示java编程异常错误
Integer.parseInt(str);
这是错误的一行str=“3 6”(在您的示例中),不能转换为整数
这是错误的str=“3 6”(在您的示例中)行,不能转换为整数。“3 6”包含空格,因此java无法将其转换为数字。这就是为什么你会犯这样的错误。
您可以将所有空格替换为“”,然后尝试将其转换为数字
String line = br.readLine().replaceAll("\\s+", "");
//if you only have spaces in either of side. then you can use trim()
int number = Integer.parseInt(line);
但最好的方法是将所有非数字字符替换为“”
“36”包含一个空格,因此java无法将其转换为数字。这就是为什么你会犯这样的错误。
您可以将所有空格替换为“”,然后尝试将其转换为数字
String line = br.readLine().replaceAll("\\s+", "");
//if you only have spaces in either of side. then you can use trim()
int number = Integer.parseInt(line);
但最好的方法是将所有非数字字符替换为“”
试试这个:-
Scanner sc = new Scanner(System.in);
System.out.println("Enter the value of n & a");
n = sc.nextInt();
a = sc.nextInt();
试试这个:-
Scanner sc = new Scanner(System.in);
System.out.println("Enter the value of n & a");
n = sc.nextInt();
a = sc.nextInt();
readLine()
将读取字符,直到找到换行符
在您的情况下,尝试在换行符中输入n
和a
的值
或者改用扫描仪
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
a = scanner.nextInt();
readLine()
将读取字符,直到找到换行符
在您的情况下,尝试在换行符中输入n
和a
的值
或者改用扫描仪
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
a = scanner.nextInt();
您在同一行中输入了3和6,使用readLine()方法,它会同时读取“3 6”并引发数字格式异常,因为它无法将“3 6”解析为整数。如果我已经理解了您的问题,那么这就是问题“36”包含一个空格,因此java无法将其转换为数字。这就是为什么你会犯这样的错误。您可以将所有空格替换为“”,然后尝试将其转换为您在同一行中输入的3和6的数字,并使用readLine()方法,它同时读取“3 6”,并引发数字格式异常,因为它无法将“3 6”解析为整数。如果我已经理解了您的问题,那么这就是问题“36”包含一个空格,因此java无法将其转换为数字。这就是为什么你会犯这样的错误。您可以将所有空格替换为“”,然后尝试将其转换为数字