我正在尝试使用String split方法从具有特定格式的字符串中提取数字。 然后我想使用Integer parseInt方法获取数字为int类型。 这是无效的示例代码。有人可以帮我吗?
'MULTIPOLYGON (((113.58403 34.93805, 113.585223 34.935306, 113.588666 34.933625, 113.592639 34.932181,
...'
我收到此错误:
String g = "hi5hi6";
String[] l = new String[2];
l = g.split("hi");
for (String k : l) {
int p=Integer.parseInt(k);
System.out.println(p);
}
答案 0 :(得分:2)
这里的问题很可能是String#split
给您的数组留下了一个或多个空元素。只需过滤掉它们,它就可以工作:
String g = "hi5hi6";
String[] parts = g.split("hi");
for (String part : parts) {
if (!part.isEmpty()) {
int p = Integer.parseInt(part);
System.out.println(p);
}
}
此打印:
5
6
答案 1 :(得分:1)
这些是数组[, 5, 6]
中的元素
你看到问题了吗?第一个元素为空。
尝试一下:
String[] l = new String[2];
l = g.split("hi");
for (String k : l) {
if (!k.isEmpty()) {
int p=Integer.parseInt(k);
System.out.println(p);
}
}
答案 2 :(得分:-1)
Integer.ParseInt将始终为您提供Numberformat异常(如果未格式化)。它是未经检查的异常,因此程序员应处理此异常。
String g="hi5hi6";
String[] l=new String[2];
l=g.split("hi");
for(String k:l){
try
{
if (!part.isEmpty()) {
//the String to int conversion happens here
int p=Integer.parseInt(k.trim());
//print out the value after the conversion
System.out.println(p);
}
}
catch (NumberFormatException nfe)
{
System.out.println("NumberFormatException: " + nfe.getMessage());
}
}