-6
我试图从文本文件中读取字符串,但它在第一个空白处停止。我以为试图用“周围的$”对字符串进行“分组”,但那不起作用。程序用坐标和字符串读入一行文件。我需要它读取这行中剩下的所有文本输入,并将其存储到一个字符串中。请和感谢所有帮助:)如何让扫描仪跳过Java字符串中的空间
Log.d(null, "scanning inputStream");
try {
do {
String latlngString;
String memory;
//skip 'latlng:'
scanner.skip("lat/lng:");
//scan coordinates
latlngString = scanner.next();
double latitude = 0;
double longitude = 0;
if (latlngString != null) {
latlngString = latlngString.startsWith("(") ? latlngString.substring(1) : latlngString;
latlngString = latlngString.endsWith(")") ? latlngString.substring(0, latlngString.length() - 1) : latlngString;
String[] latlng = latlngString.split(",");
latitude = Double.parseDouble(latlng[0]);
longitude = Double.parseDouble(latlng[1]);
}
//scan memory
for(int i = 0;i<10;scanner.hasNext()){
}
memory = scanner.next();
//this should remove the dollar signs from memory, and then save it as one string
if(memory != null){
memory = memory.startsWith("$") ? memory.substring(1) : memory;
memory = memory.endsWith("$") ? memory.substring(0, memory.length() - 1) : memory;
Log.d(null, latlngString + " " + memory);
}
//output of memory, latitude and longitude
} while (scanner.hasNextLine());
}catch(NoSuchElementException n){
Log.wtf(null, "nosuchelement");
}
我只是试图读取该行的第二部分。我正在拉整线,然后分裂它 – kevinb
您的代码将停止在第一个空白处,并且由于您的无限循环无法继续前进:'for(int i = 0; i <10; scanner.hasNext() ){}'。 Iterator变量'i'永远不会增加,所以它会在该循环中旋转,消耗100%的CPU。 – Andreas