我正在尝试读入一个文本文件,并从该文件中查找行数和列数。我决定将输入字符串标记化,然后将其转换为整数,以查找行和列。当我编译时,我会得到一个"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来计算循环的行数,并从字符串长度中获取列数。