簡體   English   中英

掃描儀的Java分割字符串不丟失定界符

[英]java split string with scanner not losing delimiters

我有這樣的句子

"Peter Tosh  and Mary Miller  or Michael or Stephan and Andrea Kurnikova"

並希望他們無論是在分裂

當我使用代碼時:

Scanner fromStr = new Scanner("Peter Tosh  and Mary Miller  or Michael or Stephan and Andrea Kurnikova");
fromStr.useDelimiter(" and | or ");
while (fromStr.hasNext()) {
    String temp = fromStr.next();
    System.out.println(temp);
}

結果是:

Peter Tosh 
Mary Miller 
Michael
Stephan
Andrea Kurnikova

但是我需要以下內容(不丟失定界符值):

Peter Tosh 
and Mary Miller 
or Michael
or Stephan
and Andrea Kurnikova

請注意,和和/或句子之間可能會有所不同。 換句話說,它必須是動態的。

為什么要使用掃描儀以及所有這些循環? 您可以只使用帶正則表達式的String::split ,也可以使用此正則表達式(?=and|or)進行拆分:

String str = "Peter Tosh  and Mary Miller  or Michael or Stephan and Andrea Kurnikova";
String[] split = str.split("(?=and|or)");
Arrays.asList(split).forEach(System.out::println);

輸出:

Peter Tosh  
and Mary Miller  
or Michael 
or Stephan 
and Andrea Kurnikova

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM