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



我正在尝试读入一个文本文件,并从该文件中查找行数和列数。我决定将输入字符串标记化,然后将其转换为整数,以查找行和列。当我编译时,我会得到一个"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++;
        }
    }
  • 我还链接了一个文本文件的示例:示例文本文件

  • 请注意,每个字符,无论是句点还是字母,都可以想象为表中的一个单元格,如果您要

  • 我在文本文件示例中寻找的输出是3行10列

您已经设置了不带分隔符的StringTokenizer(构造函数中为空字符串)。这意味着它不能将您的行拆分为令牌。

如果我理解你想做什么,你需要用替换StringTokenizer代码(while((s = inF.readLine()) != null){之后的所有代码)

  z++;
  col = s.length()
}
row = z;

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

相关内容

  • 没有找到相关文章

最新更新