标记化字符串并转换为整数时出现 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++;
}
}
我还链接了一个文本文件的例子:
Sample Text File
请注意,如果您愿意
,每个字符无论是句点还是字母都可以想象成 table 中的单个单元格
- 我在文本文件样本中寻找的输出是 3 行 10 列。
您已经设置了没有定界符的 StringTokenizer(构造函数中的空字符串)。这意味着它无法将您的行拆分为标记。
如果我明白你想做什么,你需要用
替换 StringTokenizer 代码(while((s = inF.readLine()) != null){
之后的所有内容)
z++;
col = s.length()
}
row = z;
这使用 z 来计算循环的行数,并从字符串长度中获取列数。
我正在尝试读取文本文件并从该文件中找出行数和列数。我决定通过标记输入字符串然后将其转换为整数以查找行和列来执行此操作。当我编译时,我得到一个 "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++;
}
}
我还链接了一个文本文件的例子: Sample Text File
请注意,如果您愿意
,每个字符无论是句点还是字母都可以想象成 table 中的单个单元格
- 我在文本文件样本中寻找的输出是 3 行 10 列。
您已经设置了没有定界符的 StringTokenizer(构造函数中的空字符串)。这意味着它无法将您的行拆分为标记。
如果我明白你想做什么,你需要用
替换 StringTokenizer 代码(while((s = inF.readLine()) != null){
之后的所有内容)
z++;
col = s.length()
}
row = z;
这使用 z 来计算循环的行数,并从字符串长度中获取列数。