首頁  >  文章  >  Java  >  Java 的 Scanner.useDelimiter() 如何與正規表示式一起使用來分割輸入?

Java 的 Scanner.useDelimiter() 如何與正規表示式一起使用來分割輸入?

Barbara Streisand
Barbara Streisand原創
2024-11-26 00:08:11166瀏覽

How Can Java's `Scanner.useDelimiter()` Be Used with Regular Expressions to Split Input?

用正規表示式理解Scanner.useDelimiter

在Java 的Scanner API 中,useDelimiter() 方法允許您指定一個分隔符號分割將文字輸入到標記中。但是,可以使用空格以外的分隔符,這需要了解正規表示式 (regex) 模式。

useDelimiter() 中的正規表示式模式

要使用分隔符號useDelimiter(),您需要提供正規表示式模式。此模式定義應分隔標記的字元或序列。

例如,下面的程式碼片段使用分隔符號“|,|rn”根據逗號(“,”)或換行符分割輸入(rn):

sc = new Scanner(new File(dataFile));
sc.useDelimiter(",|\r\n");

這表示掃描器會將逗號和換行符視為分隔符,將輸入拆分為

範例

要說明useDelimiter() 如何與正規表示式模式搭配使用,請考慮以下範例:

String input = "1 fish 2 fish red fish blue fish";

// Use "\s*fish\s*" as the delimiter to split the input
Scanner s = new Scanner(input).useDelimiter("\s*fish\s*");

System.out.println(s.nextInt());   // prints: 1
System.out.println(s.nextInt());   // prints: 2
System.out.println(s.next());      // prints: red
System.out.println(s.next());      // prints: blue

此處,分隔符號"sfishs" 符合0 次或多次重複的空白字元("s*") 後面跟著單字“fish”,然後重複0 次或多次空格。結果,輸入根據分隔符號分割成標記,掃描器可以提取所需的值。

其他資源

有關useDelimiter( 的更多信息) ) 和正則表達式模式,請參考以下資源:

  • 掃描儀API: https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html
  • 正規表示式教學:https://www.vogella.com/tutorials/JavaRegularExpressions/ article。 html
  • 正規表示式快速參考:https://www.regular-expressions.info/quickref.html

以上是Java 的 Scanner.useDelimiter() 如何與正規表示式一起使用來分割輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn