我有下面的代码片段在我的项目:Java扫描仪不能正常工作?
public void addText(String s){
Scanner scan;
int newInt = Integer.parseInt(s.substring(s.indexOf('\t') + 1 + 1));
//find insertion point
String temp = "";
scan = new Scanner(text);
int prev = 0;
while(scan.hasNextInt() && newInt > scan.nextInt()){
temp += text.substring(prev, text.indexOf('\n')) + "\r\n";
prev = text.indexOf('\n') + 1;
}
text = temp + s + "\r\n" + text.substring(prev);
}
这样做的目标是要插入一个字符串到现有的字符串,并把它放在一个有点“数字顺序”。
String s
是一个格式化的字符串,看起来像"CityName\t\tSomeNumber"
。该代码为newInt
工程(通过调试确认)。不起作用的是while
循环。即使text
中有数据,scan.hasNextInt()
也会失败。
例如,假设text = "Charlestown\t\t9"
,s = "Downville\t\t15"
。 newInt
得到分配15. while
循环应重复一次和结束,因为15 > 9
(按这些数字的升序组织城市)。但由于某种原因,扫描程序每次在条件语句的scan.hasNextInt()
部分都返回false。
有什么建议吗?
谢谢!这部分代码现在已经修复! –