标记化字符串并转换为整数时出现 NumberFormatException

NumberFormatException when tokenizing a string and converting to an integer

我正在尝试读取文本文件并从该文件中找出行数和列数。我决定通过标记输入字符串然后将其转换为整数以查找行和列来执行此操作。当我编译时,我得到一个 "java.lang.NumberFormatException.forInputString"。非常感谢任何解释为什么会导致此问题的原因。谢谢。

BufferedReader inF = new BufferedReader(new FileReader(new File("/Users/marco/Desktop/5ele.txt")));
    String s = "";

    int row = 0;
    int col = 0;
    int z = 0;

    while((s = inF.readLine()) != null){  

        StringTokenizer st = new StringTokenizer(s, ""); 
        while(st.hasMoreTokens()){
            int convertedToInt = Integer.parseInt(st.nextToken());   //this is where the problem occurs

            if (z == 0) {
                row = convertedToInt;
            } else if (z == 1) {
                col = convertedToInt;
            }

            z++;
        }
    }

您已经设置了没有定界符的 StringTokenizer(构造函数中的空字符串)。这意味着它无法将您的行拆分为标记。

如果我明白你想做什么,你需要用

替换 StringTokenizer 代码(while((s = inF.readLine()) != null){ 之后的所有内容)
  z++;
  col = s.length()
}
row = z;

这使用 z 来计算循环的行数,并从字符串长度中获取列数。