将Java字符串数组设置为Int
我有一个大约有150个数字的字符串,比如字符串num=“64513246563……”
我正在尝试将这个字符串的每个数字相加。所以我的想法是把它分成一个整数数组,然后从那里添加它们。我首先将其拆分为字符串数组,然后尝试将其转换为Int数组。我得到一个未知源错误。代码如下:
String[] strArray = num.split("");
int[] intArray = new int[strArray.length];
for(int i = 0; i < strArray.length; i++) {
intArray[i] = Integer.parseInt(strArray[i]);
}
下面是错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
有人能看出我做错了什么吗?有没有更有效的方法
////////////////////////////////
谢谢大家的帮助,好像是用。split(“”)在索引0处创建一个空字符串。这是我的主要问题,但关于如何更有效地解决这个问题,有很多有用的建议:)谢谢大家的意见
# 1 楼答案
异常消息清楚地表明输入是空字符串
一种处理方法是,在解析之前进行空
String
检查注意:如果输入不是有效的int,这仍然会失败,但如果是空字符串(或)null,则不会失败
另一种处理方法是获取
chartAt(i)
,而不是使用split("")
# 2 楼答案
# 3 楼答案
由
num.split("");
给出的第一个字符串为空一个解决方案是简单地从索引1开始迭代
但是你所做的事情太贵了
# 4 楼答案