「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Java の Scanner.useDelimiter() は正規表現とどのように連携しますか?

Java の Scanner.useDelimiter() は正規表現とどのように連携しますか?

2024 年 12 月 25 日に公開
ブラウズ:524

How Does Java\'s Scanner.useDelimiter() Work with Regular Expressions?

Scanner の区切り文字について理解する Java の useDelimiter

Java の Scanner クラスには useDelimiter メソッドがあり、区切り文字 (文字またはパターン) を指定できます。トークン。ただし、初心者にとって区切り文字の使用は混乱する可能性があります。より簡単な言葉で分解してみましょう。

次のスニペットを考えてみましょう。

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

この例では、区切り文字は、コンマ (",") と改行 ("\) の組み合わせとして定義されています。 r\n")。スキャナはこの区切り文字を使用して、データ ファイル内のトークンを区切ります。

正規表現について

useDelimiter で指定する区切り文字は正規表現です。正規表現は、文字またはシーケンスを照合するために使用されるパターンです。区切り文字「,|\r\n」は、トークンがカンマで終わるか、改行が続く復帰で終わることを指定します。

例を見てみましょう:

String input = "1 fish 2 fish red fish blue fish";
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
s.close();

この例では、区切り文字は「\sfish\s」です。 \\s* は、「fish」という単語の前後に任意の数の空白(ゼロを含む)を含めることができることを示します。これは、スキャナが「1 匹の魚」、「2 匹の魚」などのトークンを照合して抽出することを意味します。

結論

Java で useDelimiter を使用する場合は、通常のトークンを理解することが重要であることに注意してください。表現。正規表現パターンの知識を高めるための詳細なチュートリアルをオンラインで見つけることができます。区切り文字と正規表現を正しく理解すると、Scanner クラスを使用してテキスト ファイルからデータを効率的に解析して抽出できます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3