我有一个Java Scanner.useDelimiter()分隔“”的问题。Java Scanner.useDelimiter()问题与“”
我试图用扫描器读取一个CSV文件。该CSV有2列(名称,描述),并说明字段中有长段(与和。)
我想知道什么分隔符这个案例。
我有一个Java Scanner.useDelimiter()分隔“”的问题。Java Scanner.useDelimiter()问题与“”
我试图用扫描器读取一个CSV文件。该CSV有2列(名称,描述),并说明字段中有长段(与和。)
我想知道什么分隔符这个案例。
如何像
Scanner s = new Scanner("name1 lorem, some description\n" +
"name2 ipsum, some other, description \n" +
"name3 dolor, a third. description\n");
while (s.hasNextLine()) {
String[] cols = s.nextLine().split(",", 2); // limit to two columns.
System.out.println("col1: " + cols[0] + ", col2:" + cols[1]);
}
打印:
col1: name1 lorem, col2: some description
col1: name2 ipsum, col2: some other, description
col1: name3 dolor, col2: a third. description
或者,如果你坚持使用扫描仪,所有的方式,你可以不喜欢
Scanner s = new Scanner("name1 lorem, some description\n" +
"name2 ipsum, some other, description \n" +
"name3 dolor, a third. description\n");
s.useDelimiter(",");
while (s.hasNext())
System.out.println("col1: " + s.next() + ", col2:" + s.skip(",").nextLine());
(它产生。同样的输出)
如果你只得到了两列,用逗号分隔,一个简单的替代Scanner
是只用String.substring
:
int i = s.indexOf(',');
String name = s.substring(0,i);
String desc = s.substring(i+1);
或String.split – Thilo 2010-09-30 07:24:05
描述是否可以包含换行符? – aioobe 2010-09-30 06:59:09
可以在描述中有逗号吗? – 2010-09-30 07:24:03
thegravytalker:是的,操作状态“描述字段有很长的段落(with,and。)” – aioobe 2010-09-30 07:26:29