ホームページ  >  記事  >  Java  >  Java の「Scanner.useDelimiter()」を正規表現とともに使用して入力を分割するにはどうすればよいですか?

Java の「Scanner.useDelimiter()」を正規表現とともに使用して入力を分割するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-26 00:08:11165ブラウズ

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");

これは、スキャナがカンマと改行を区切り文字として扱い、入力を次のように分割することを意味します。 tokens.

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/Java RegularExpressions/article。 html
  • 正規表現のクイック リファレンス: https://www.正規表現.info/quickref.html

以上がJava の「Scanner.useDelimiter()」を正規表現とともに使用して入力を分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。