当前位置: 首页 > 知识库问答 >
问题:

在“main”线程中出现异常,我认为integer.parseint()被卡住了,但我不知道为什么

贾越
2023-03-14

我的程序从用户那里得到2个数字,一个长度为10,一个长度为3。我把它们当成绳子。然后,我尝试使用integer.parseint()将它们转换为整数。我没有代码错误,但当我运行程序时,我得到以下错误。

public class Assn3 {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
    secrets agent = new secrets();

    agent.getnumber();
    agent.storetoarray();
}
}

class secrets{
private String initialphone, key;
//private String phonestring, keystring;
private int phonelength, keylength;
private int phoneint, keyint;
private int phonetemp1, phonetemp2;
double[] phonearray = new double[phonelength];
double[] keyarray = new double[keylength];


public void getnumber()
//get the phone number and security code
//If the number and key are not the right length the program will stop
{         
   Scanner input = new Scanner(System.in);
   System.out.print("Please enter the phone number you need encrypted\n"
           + "just enter the 10 digits no dashes\n");
   initialphone = input.next(); 
   phonelength = initialphone.length();
   if(phonelength !=10){
       System.out.print("nope");
       System.exit(0);
   }
   System.out.print("Please enter the encryption key\n"
           + "just 3 digits please\n");
   key = input.next();
   keylength = key.length();
   if(keylength !=3){
       System.out.print("nope");
       System.exit(0);
   }

}

public void storetoarray()
        //Turn the strings to ints
        //A loop chops of the last digit and stores in an array
{



    phoneint = Integer.parseInt(initialphone);
    phonetemp1 = phoneint;
    keyint = Integer.parseInt(key);


    for (int i = phonelength; i>=0; i--)
    {
        phonearray[i] = phonetemp1%10;
        phonetemp2 = phonetemp1 - phonetemp1%10;
        phonetemp1 = phonetemp2;
        System.out.print("Phone temp 2" + phonetemp2);
    }



}

共有1个答案

纪实
2023-03-14

integers(和ints)最多只能有integer.max_value(2^31)-1-大约20亿。您的输入大于该值,这使得它不是可解析的int,因此parseint()抛出异常。使用long.parselong()是可行的,它的max_value要高得多,但就您的目的而言,您可能根本不需要变量是数值对象。由于不对其执行任何数学运算,所以很可能只将其保留为字符串

编辑:第二眼我看到您正在对电话号码执行一些算术,但使用string操作很可能会达到相同的效果。很难说清楚你在那里做什么。

 类似资料:
  • 我的程序从用户那里得到两个数字,一个长度为10,一个长度为3。我把它们当作一根绳子。然后我尝试使用Integer.parseInt()将它们转换为整数。我没有代码错误,但当我运行程序时,我得到以下错误。 异常线程"main"java.lang.NumberFormatExcture:对于输入字符串:"4159238189"在java.lang.NumberFormatException.forIn

  • 我是Spring的新人。我学习,但在学习过程中我出错了。我为Spring使用基于XML的配置,这里是编译错误: 线程“main”org . spring framework . beans . factory . beancreationexception中出现异常:创建在类路径资源[Beans.xml]中定义的名为“helloGeorgia”的bean时出错:设置属性值时出错;嵌套异常为org

  • 我在线程“main”java中遇到异常。错误:未解析编译。 我做错了什么? 线程“main”中出现异常: java.lang.错误:未解决的编译问题: 对于类型在

  • 不管我怎么努力,页面都被缓存了。因此,php函数运行一次后,总是显示缓存的结果,直到您按下Shift F5 > 我禁用了奥普卡什(在 phpinfo()上不再有奥普卡切了) 我禁用了APC(phpinfo()上不再有APC) 我使用了标题 Cache-Control:no-store,no-cache,必须重新验证"); // HTTP/1.1标头(Cache-Control:post-check

  • 我从GitHub克隆了我的项目,现在我无法运行我的项目。 我收到以下错误: 知道是什么导致了这个错误吗? 编辑 我检查了这个问题Intellij在我发布到这里之前突然抛出ClassNotFoundException,它没有给我任何解决方案...为什么要将我的问题标记为重复,因为那个问题不能解决我的问题?

  • 我得到了这个错误: 线程“main”Java.lang.NosuchFielderRror:calificacion.main处的num1异常(problema_3.Java:17) 在这个简单的终端Java程序上键入第一个值后: 另一方面,这一个运行良好,我使用相同的输入法在这两个: 提前道谢。