我是.net开发人员,刚开始使用Java开发。
br = new BufferedReader(new FileReader(filePath));
while ((sCurrentLine = br.readLine()) != null) {
int vertIdx = sCurrentLine.trim().indexOf(space);
String ver = sCurrentLine.trim().substring(0,vertIdx);
int vrtInt = Integer.parseInt(ver.trim()); // Here is the error
//Code Continues
}
在Integer.parseInt(ver.trim())中,我收到以下异常:
Exception occurred in target VM: For input string: "1"
java.lang.NumberFormatException: For input string: "1"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at kosaraju.Graph.createGraph(Graph.java:75)
at kosaraju.Graph.main(Graph.java:247)
在此执行时,我对sCurretline的价值是" 1 4"和ver是" 1" 我无法弄清楚这么小的问题。有人可以指出我的代码中的错误吗?
这是我的观察窗口:
答案 0 :(得分:2)
根据结果[65279, 49]
,您的文字似乎以Zero Width No-Break Space开头,无法修剪,因为它不被视为空格,也不会被解析为数字。
您需要将其删除,例如replaceAll("[^\\d+-]","")
,这将删除任何不是digit
,+
或-
的字符。
答案 1 :(得分:0)
您需要删除.replaceAll(“[^ 0-9]”,“”)
字符。
br = new BufferedReader(new FileReader(filePath));
while ((sCurrentLine = br.readLine()) != null) {
int vertIdx = sCurrentLine.trim().indexOf(space);
String ver = sCurrentLine.trim().substring(0,vertIdx);
ver=ver.replaceAll("[^0-9]", "");
int vrtInt = Integer.parseInt(ver.trim()); // Here is the error
//Code Continues
}