Scanner クラスを使用してファイルを解析すると、次のような問題が発生する可能性があります。 useDelimiter() メソッドを使用しますが、その動作は混乱を招く可能性があります。この記事では、区切り文字が Scanner クラスと連携してどのように機能するかを簡単に説明します。
Scanner クラスは、入力の解析に使用する場合、以下を使用するように構成できます。特定の文字またはパターンを区切り文字として使用します。デフォルトでは、空白文字 (スペース、タブ、改行など) が区切り文字として機能します。ただし、 useDelimiter() メソッドを使用して独自の区切り文字を指定できます。
たとえば、次のコードを考えてみましょう。
Scanner sc = new Scanner(new File(dataFile)); sc.useDelimiter(",|\r\n");
この例では、の場合、指定される区切り文字はコンマ (",") または改行 ("rn") が続くキャリッジ リターンです。これは、スキャナが文字または組み合わせの出現を区切り文字として扱うことを意味します。
これがどのように機能するかを説明するために、次の入力文字列を考えてみましょう。
1 fish 2 fish red fish blue fish
指定された区切り文字で構成された Scanner オブジェクトを使用して処理されると、入力は次のようにトークンに分割されます。
1 2 red blue
useDelimiter() で指定される区切り文字には、正規表現 (regex) を含めることができます。正規表現は、テキスト内の複雑なパターンを定義するための簡潔かつ強力な方法です。上の例で使用されている正規表現「,|rn」は、カンマまたは改行のいずれかに一致します。
以上がJava の「Scanner.useDelimiter()」は正規表現とどのように連携しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。