为什么Integer.parseInt方法不能用于拆分的字符串?

时间:2020-02-28 09:37:30

标签: java string split parseint

我正在尝试使用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);
}

3 个答案:

答案 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());
  }

}