0

Scanner の . next() メソッドが句読点をどのように扱うか知っている人はいますか? これに対する答えはどこにも見つかりませんでした。テキスト ファイルから各単語を読み取るプログラムがありますが、「それは」、「彼らは」、「彼女は」などの部分をどのように処理するかわかりません。

ピリオドとコンマについては、それらは別の実体としてカウントされますか、それとも「her」のように出現する場合、単語の一部と見なされますか? か彼女、"?それが何をするかによって、「彼女」と「彼女」です。または「彼女」と「彼女」は、スキャナによって 2 つの異なる単語と見なされますか?

アポストロフィについては、考慮されますか、それとも単語を効果的に 2 つに分割しますか? たとえば、「they're」は「they」「'」「re」と認識されるのでしょうか、それとも「they're」と完全に認識されるのでしょうか?

この質問にはっきりと出くわしたことを願っています。

4

3 に答える 3

2

Scanner には、useDelimiter「ワード ブレーカー」と見なされる文字を指定できるメソッドがあります。デフォルトの区切り文字は空白パターンです (句読点記号が単語に含まれます)

于 2011-04-24T20:21:25.860 に答える
0

デフォルトの区切り文字Scannerは空白です。したがって、提供した例はどれも分割されません。でも、自分で試してみませんか?

String input = "That's a they are, her. They're here.";
Scanner scanner = new Scanner(input);
while (scanner.hasNext()) {
    System.out.println(scanner.next());
}

'と のような空白で分割したい場合は、次のようなものを使用します。

Scanner scanner = new Scanner(input).useDelimiter("[\\s']");
于 2011-04-24T20:21:52.733 に答える
0

私は知りませんでした(推測しただけです)ので、自分で試してみました:

    String input = "That's what they are, I told her. She said, it ain't so!";
    Scanner s = new Scanner(input); // default delimiter is whitespaces

    while (s.hasNext()) {
        System.out.println(s.next());
    }

出力:

That's
what
they
are,
I
told
her.
She
said,
it
ain't
so!
于 2011-04-24T20:22:46.657 に答える