Ven*_*rue 6 java string java.util.scanner
我有一些非常基本的代码
while (scan.hasNextLine())
{
String temp = scan.nextLine();
System.out.println(temp);
}
Run Code Online (Sandbox Code Playgroud)
其中scan是文件上的扫描仪.
然而,在一条约6k字符长的特定行上,临界值会在2470个字符之后切断.什么时候削减它没有什么特别之处; 它位于"澳大利亚"一词的中间.如果我从行中删除字符,它删除的地方会发生变化; 例如,如果我删除文件中的字符0-100,那么扫描仪将获得之前的100-2570.
之前我曾使用Scanner来制作更大的字符串.什么可能出错?
猜测,你可能在截止点上有一个流氓角色:在十六进制编辑器中查看文件而不是文本编辑器.也许有一个嵌入的空字符,或者可能\r在字符串的中间?我似乎不太可能Scanner.nextLine()随便砍掉它.
另外一个想法,你是否100%确定它不是全部存在?也许System.out.println正在砍掉字符串 - 再次由于嵌入了一些"奇怪"的字符?打印时会发生什么temp.length()?
编辑:我错误地解释了如果你删掉一些字符会发生什么.对于那个很抱歉.还有一些要检查的事情:
BufferedReader.readLine()而不是读取线条Scanner,它会得到一切吗?如果没有完成所有这些,我只需要调试Scanner.nextLine()- 关于Java的一个好处就是你可以调试到标准库中.