繁体   English   中英

Java Scanner 类中的多个分隔符

[英]Multiple delimiters in Scanner class of Java

如何使用Scanner类的useDelimiter()方法将逗号 (,) 和换行符 (\\n) 用作分隔符?

我正在解析 csv 文件中的一些文本。

 Scanner s = new Scanner("hello, world \n hello world");
 s.useDelimiter(",|\\n");
 while(s.hasNext()){
          System.out.println(s.next());

 }

输出

hello
 world 
 hello world

useDelimiter(",|\\\\n");怎么样useDelimiter(",|\\\\n");

我的文本文件有如下条目:

01-jan-2020,102
02-jan-2020,103
…

要从每一行读取两个值,它使用以下方法,因为每一行结尾都有\\r\\n字符:

Scanner.useDelimiter(",|\\r\\n")

useDelimiter 采用正则表达式模式,因此,它类似于",|\\n"

Jigar 是完全正确的。 但如果它不起作用,请尝试",|\\\\r"

因为大多数文本文件都有 \\r\\n 而不仅仅是 \\n

对 Excel 文件使用扫描分隔符 - 不要忽视 RegEx 的事情。 在我的情况下,excel 文件由“|”分隔。 我花了大量时间使用scanner.useDelimiter("|") 解析行,并逐个字符地取回。 用scanner.useDelimiter( "\\\\|" ) 替换它解决了我的问题!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM