0

プログラムに問題があります。私のプログラムでは、ボトルネックは文字列の置き換えと分割です。文字列からタブに単語を取得する必要があります。

例えば:

私はひもを持っています:「これはアラです。アラには猫がいますか?金儲けの猫です。」

文字列タブ[]と結果を取得する必要があります

tab[0]="This"<br>
tab[1]="is"<br>
tab[2]="Ala"    not "Ala."<br>
tab[3]="Does"<br>
....<br>
tab[7]="cat" not "cat?"<br>
tab[8]="Money"   not "Money-making"<br>
tab[9]="making"<br>
tab[10]="cat" not "cat."  <br>

単語には「、。/;!:?-など」のような記号を付けることはできません。英語の文字しか含めることができません。

実際に私はそのようにこれをやっています

s = s.replace(",", " ").replace("!", " ")....   ;

String [] tab = s.split("\\s+");

しかし、この方法は本当に遅いです。どうすればもっと速くできますか?Java言語で。

4

2 に答える 2

1

1つ以上の単語以外の文字で分割できます。

String[] parts = str.split("\\W+");

_注:単語以外の文字は、文字と数字以外のものを意味します。あなたが@BaileySの答えで行かなければならないよりも手紙だけが欲しいなら。

于 2012-11-20T21:15:59.003 に答える
0

replaceAllを使用できます。たとえば、s.replaceAll( "[?。、]"、 "")

于 2012-11-20T21:18:15.867 に答える