在Java中将分隔符视为不同的标记

时间:2014-10-14 16:37:03

标签: java

我很难找到如何从文件中读取并输出分隔符,例如“;”或“:”等作为单独的字符串

这是我到目前为止所做的:

int i = 0;

s = new Scanner(new BufferedReader(new FileReader("lab1.txt")));


while (s.hasNext()) {
    System.out.println(s.next());
    i++;

输入文件lab1.txt为:

cookies; and juice

输出:

cookies;
and
juice

我想要的输出是什么:

cookies
;
and
juice

任何想法我怎么能得到它?

谢谢。

1 个答案:

答案 0 :(得分:7)

您需要为Scanner使用分隔符。

它将使用正则表达式来定义分隔符 - 请参阅API here

例如(此处替换为StringReader以重现):

Scanner s = new Scanner(new BufferedReader(new StringReader("cookies; and juice")));
//              | whitespace
//              |  | or 
//              |  | | something followed by punctuation (non-capturing group)
//              |  | | 
s.useDelimiter("\\s|(?=\\p{Punct})");
while (s.hasNext()) {
    System.out.println(s.next());
}

<强>输出

cookies
;
and
juice