0

LinkedLists と BSTs を使用しながら、辞書リストと段落から読み込み、特定の単語が段落に表示される回数をカウントする課題に取り組んでいます。私たちはparagraph.txtファイルを分割するための正規表現コマンドを与えられました.コマンドは"[\\s|\\pPunct]+"私にとっては[\\s, ?!]+うまくいきません.このコースの概要 私はそれらについてあまり知りません。

すべてのピリオド、コンマ、空白を削除するコマンドを探しています。[\\s, ?!]+最初の 2 つを実行しますが、たとえば次の行があるとします。

..some line here

more text here...

その戻り行は削除されません。LinkedList に各単語を追加したときに削除しようとしました。

    public static void insertParagraph(String[] strings) {
    for(int i = 0; i < strings.length; i++) {
        if(strings[i] != "" || strings[i] != " " || strings[i] != null)
            paragraph.insertFirst(strings[i].replaceAll("[^a-zA-Z'\\s]","").toLowerCase());
    }
}

ただし、 if ステートメントも機能しない場合、誰か提案はありますか?

4

1 に答える 1

4

角括弧は文字クラスを表し、丸括弧はキャプチャ グループを表します。

Patternクラスを見て、定義済みの文字クラスを確認してください。

"[\\s|\\pPunct]+" // wrong
"(\\s|\\p{Punct})+" // correct
于 2013-06-28T16:48:32.360 に答える