2013-03-07 96 views
1

这是我到目前为止,我需要把这个字符串数组转换成只是一个整数数组,字符串数组看起来像这样将字符串数组转换成int数组

wholef[0] = "2 3 4"; 
wholef[1] = "1 3 4"; 
wholef[2] = "5 3 5"; 
wholef[3] = "4 5 6"; 
wholef[4] = "3 10 2"; 

这些值来自我读的文本文件,但现在我需要将其转换成一个大整数数组,我试图使用拆分方法,但我不知道它是否会在这种设置上工作。如果任何人都可以给我一个更好的方式,这将是很好的,但我只需要将其转换成一个整数数组,这就是我所需要的。

for(int k = 0; k < fline; k++) 
    { 
     String[] items = wholef[k].replaceAll(" ", "").split(","); 

     int[] parsed = new int[wholef[k].length]; 

     for (int i = 0; i < wholef[k].length; i++) 
     { 
      try 
      { 
       parsed[i] = Integer.parseInt(wholef[i]); 
      } catch (NumberFormatException nfe) {}; 
     } 
    } 

这是现在使用,它非常接近事业的新代码的IM,我只得到一个错误

int q = 0; 
     for (String crtLine : wholef) 
     { 
      int[] parsed = new int[wholef.length]; 

      String[] items = crtLine.split(" "); 
      for (String crtItem: items) 
      { 
       parsed[q++] = Integer.parse(crtItem); 
      } 
     } 

的错误是这样 的java:97:错误:无法找到符号解析[Q +} = Integer.parse(crtItem); ^ 符号:方法解析(字符串) 位置:Integer类 1错误

+0

你对括号做了什么?我没有看到你的字符串中有? – 2013-03-07 21:18:44

+0

老实说我不知道​​为什么在那里,但它已被修复 – user1721540 2013-03-07 21:22:17

+0

'parsed [q ++] = Integer.parse(crtItem)'应该'被解析[q ++] = Integer.parseInt(crtItem)' – nattyddubbs 2013-03-07 21:36:33

回答

2

这把你的字符串数组,并将其转储到intwholef [n..total]; 如果你想要它成二维数组或对象数组,你必须做一些额外的工作。然后你可以做一组对象,并将每组值作为一个属性。

String[] parts = wholef[0].split(" "); 
int[] intwholef= new int[parts.length]; 

for(int n = 0; n < parts.length; n++) { 
    intwholef[n] = Integer.parseInt(parts[n]); 
    } 
+0

得到这个很好地工作,我唯一的问题是,当我有新的数组中的变量即时通讯不能在for循环之外使用它们,任何方法来解决这个问题? – user1721540 2013-03-07 21:51:30

4

尝试这种情况:

int i = 0; 
for (String crtLine : wholef) { 
    String[] items = crtLine.split(" "); 
    for (String crtItem: items) { 
      parsed[i++] = Integer.parseInt(crtItem); 
    } 
} 
+0

请确保您重置我每一个wholef迭代,并解析得到设置正确的大小。 – 2013-03-07 21:23:03

+0

这会破坏它 - 将相同的3个元素写入数组。作为未知的大小,我会建议使用List然后调用toArray()。 – 2013-03-07 21:24:31

+0

如果知道每个'.split()'将产生正好3个字符串,'parsed'数组可以像这样安全地初始化:'int [] parsed = new int [3 * wholef.length]',如果不是,@ bmorris591是对的,它会更好有一个'List' – niculare 2013-03-07 21:29:15