【发布时间】:2015-04-01 16:26:38
【问题描述】:
country residents area capital
Andorra 71201 468 Andorra la Vella
Italien 58133509 301230 Rom
San Marino 29251 61 San Marino
我需要将信息(资本、居民、地区、资本)存储在不同的变量中。我将如何解析这个?请注意,有时名称中会有空格。
我已尝试读取每个令牌 (scanner.next()),但当首都或国家/地区名称中有空格时会失败。
我尝试读取每一行然后对其进行解析,但我无法找到正确解析所有内容的方法,因为名称中有时存在空格。 (我使用 indexOf() 和 substring() )
这是一个较大文件的一部分,但整个字段中的居民或区域字段中没有空格。
我的尝试:
while(scanner.hasNext()){
String info = scanner.nextLine();
//parse string
int nameindex = info.indexOf(" ");
System.out.println(info.substring(0,nameindex));
int resindex = info.indexOf(" ", nameindex);
}
【问题讨论】:
-
如果nameindex后面的字符串是Numeric,则将其作为下一个字段读取,否则将读取的字符串附加到上一个字段中,中间有空格。
标签: string parsing java.util.scanner