Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/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.lang.NumberFormatException_Java - Fatal编程技术网

线程“中的java编程异常出错”;“主要”;java.lang.NumberFormatException

线程“中的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

这是显示系列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 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无法将其转换为数字。这就是为什么你会犯这样的错误。您可以将所有空格替换为“”,然后尝试将其转换为数字