我的程序从用户那里得到两个数字,一个长度为10,一个长度为3。我把它们当作一根绳子。然后我尝试使用Integer.parseInt()将它们转换为整数。我没有代码错误,但当我运行程序时,我得到以下错误。
异常线程"main"java.lang.NumberFormatExcture:对于输入字符串:"4159238189"在java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)在java.lang.nteger.parseInt(Integer.java:495)在java.lang.我nteger.parseInt(nteger.java:527)在assn3.secrets.storetoarray(ssn3.java:75)在assn3。ssn3.main(ssn3.java:30)Java结果
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);
}
}
}
integer是一种有符号的32位类型,其范围从-2,147,483,648到2,147,483,647。long是一种有符号的64位类型,对于int类型不足以容纳所需值的情况很有用,范围从-9,223,372,036,854,775,808到9 ,223,372,036,854,775,807。这使得它在需要大的整数时非常有用。
试试这行代码-
long phoneint = Long.parseLong(initialphone);
long phonetemp1 = phoneint;
整数
s(和int
s)只能具有整数的值。MAX_VALUE(2^31)-1大约20亿。您的输入比这个大,这使得它不是一个可解析的
int
,所以parseInt()
抛出异常。它可以使用Long.parseLong()
,它具有更高的MAX_VALUE
,但是对于您的目的,您可能根本不需要您的变量是数字对象。因为您没有对它执行任何数学运算,所以您很可能只是将它保留为String
。
编辑:第二眼,我看到你正在对电话号码执行一些算术,但是同样的效果很可能可以通过
String
操作来实现。很难说你在那里做什么。
我的程序从用户那里得到2个数字,一个长度为10,一个长度为3。我把它们当成绳子。然后,我尝试使用integer.parseint()将它们转换为整数。我没有代码错误,但当我运行程序时,我得到以下错误。
我是Spring的新人。我学习,但在学习过程中我出错了。我为Spring使用基于XML的配置,这里是编译错误: 线程“main”org . spring framework . beans . factory . beancreationexception中出现异常:创建在类路径资源[Beans.xml]中定义的名为“helloGeorgia”的bean时出错:设置属性值时出错;嵌套异常为org
> 控制器 } 服务 -板 > 原因:java。lang.IllegalArgumentException:给定的id不能为null!位于组织。springframework。util。明确肯定组织中的notNull(Assert.java:201)。springframework。数据jpa。存储库。支持简单Parepository。java上的deleteById(SimpleJpaRepos
问题内容: 语法的哪一部分提供了该函数应在其他线程中运行并且是非阻塞的信息? 让我们考虑一下node.js中的简单异步I / O 是什么使它在后台发生的呢?任何人都可以准确地解释它,还是可以粘贴指向一些好的资源的链接?我到处看的地方都有很多关于什么是回调的信息,但是没有人解释为什么它实际上如此工作。 这不是关于node.js的特定问题,而是关于每种编程语言中回调的一般概念。 编辑: 我提供的示例可
/tester.java:3:错误:import java.lang.Math类型的非法启动;^Tester.java:3:错误:应输入java.lang.Math>*;^