此错误的问题:线程中出现异常;“主要”;java.lang.NumberFormatException:对于输入字符串:"&引用;

此错误的问题:线程中出现异常;“主要”;java.lang.NumberFormatException:对于输入字符串:"&引用;,java,string,Java,String,这是一个问题,我们将用9的补码减去两个数 import java.io.*; public class NinesComplement { public static void main(String[] args)throws java.io.IOException { java.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(System.in))

这是一个问题,我们将用9的补码减去两个数

import java.io.*;

   public class NinesComplement {

    public static void main(String[] args)throws java.io.IOException {
        java.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
        while (true) {
            System.out.print("Enter Minuend: ");
            int min = Integer.parseInt(br.readLine());
            System.out.print("Enter Subtrahend: ");
            String sub = br.readLine();

            int max = Integer.toString(min).length();
            for (int i = 0; sub.length() < max; i++) {
                sub = 0 + sub;
            }

            String [] subArr = sub.split("");
            int[] num = new int[subArr.length];
            for (int i = 0; i < subArr.length; i++) {
                num[i] = Integer.parseInt(subArr[i]);
            }

            int[] n = new int[num.length];
            for (int i = 0; i < num.length; i++) {
                for (int ii = 0; num[i] < 9; ii++) {
                    num[i]++;
                    n[i]++;
                }
            }

            String str = "";
            for (int i = 0; i < num.length; i++) {
                str += Integer.parseInt(Integer.toString(n[i]));
            }

            int add = Integer.parseInt(str);
            String ans = Integer.toString(min + add);

            if (ans.length() > max) {
                String temp1 = ans.substring(0, 1);
                String temp2 = ans.substring(1, ans.length());
                int fin = Integer.parseInt(temp2) + Integer.parseInt(temp1);
                System.out.println("Answer: " + fin);
            } else if (ans.startsWith("9") && ans.endsWith("9")) {
                System.out.println("Answer: 0");
            }

            System.out.print("Do you want to try again? \n[y][n]: ");
            String choice = br.readLine();
            if (choice.equals("n")) {
                System.out.println("Thank you!!!");
                        System.exit(0);
    }
    }
    }
}    
import java.io.*;
公共类九补码{
公共静态void main(字符串[]args)引发java.io.IOException{
java.io.BufferedReader br=new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
while(true){
系统输出打印(“输入分钟数:”);
int min=Integer.parseInt(br.readLine());
System.out.print(“输入减数:”);
String sub=br.readLine();
int max=Integer.toString(min).length();
对于(int i=0;sub.length()最大值){
字符串temp1=ans.substring(0,1);
字符串temp2=ans.substring(1,ans.length());
intfin=Integer.parseInt(temp2)+Integer.parseInt(temp1);
System.out.println(“回答:“+fin”);
}否则如果(ans.startsWith(“9”)&ans.endsWith(“9”)){
System.out.println(“答案:0”);
}
System.out.print(“是否重试?\n[y][n]:”;
字符串选择=br.readLine();
if(选择等于(“n”)){
System.out.println(“谢谢!!!”;
系统出口(0);
}
}
}
}    
线程“main”java.lang.NumberFormatException中的异常:用于输入 字符串:“


你只是想把一个空字符串解析成一个数字在尝试使用之前,您应该始终验证用户输入:)。

在使用输入之前添加一个前置条件(只是一个if语句检查),如果输入不好,则向用户打印一条好消息,然后返回等待更多好的输入


此外,要调试此问题,只需简化您的操作,并在尝试使用用户输入之前添加一些用引号括起来的打印语句,以便查看。

错误消息表示您正在尝试将空字符串当作数字来解析。空字符串不包含数字,因此会出现此异常。请密切注意完整的错误消息,它会准确地告诉您发生异常的代码行。请修复代码,使其不会像解析包含数字的空字符串那样解析。问题是,我刚刚将此代码复制给了某个人。哈哈哈