0

私は次のようなテキストを持っています:

DESC:manner農奴制はどのようにしてロシアで発展し、その後ロシアを去ったのですか?
ENTY:crematポパイ・ドイルというキャラクターが登場した映画は何ですか?
DESC:manner有名人の本名のリストを見つけるにはどうすればよいですか?

私はそれらを1行ずつ読み、各行を1string Array語ずつ変換したいと思います。このような:

Array = [DESC、:、manual、How、did、serfdom、develop、in、and、then、leave、Russia、?]

4

8 に答える 8

2
String[] arr = str.replaceAll(":"," : ").split(" ");
于 2012-12-12T15:26:05.407 に答える
0

uは、文字列行を文字列配列に分割することを意味します。

これを行うには2つの便利な方法があります。

もちろん、最初は分割方式です。Uは、j2seStringクラスでこのメソッドを参照できます。

2番目は正規表現パターンです。Uはj2se正規表現クラスの情報を参照できます。

于 2012-12-12T14:37:31.203 に答える
0

結果から句読点を削除してもかまわない場合は、String#split("\\W")(単語以外の文字に分割して)次のようにします。

// you've got this from the input parser
String inputLine = "DESC:manner How did serfdom develop in and then leave Russia ?";

String[] wordArray = inputLine.split("\\W");

それは与える:

wordArray = [DESC, manner, How, did, serfdom, develop, in, and, then, leave, Russia]

句読点が必要な場合は、一致した文字を破棄して分割を行うため、正規表現ではそれができないと思います。

于 2012-12-12T15:05:16.907 に答える
0

問題は、一部の区切り文字を保持し、他の区切り文字は保持したくないということです(:スペースを保持して緩めます)。これを達成するには、定期的な表現が必要だと思います。このような何かがそれを行う必要があります:

String str = "DESC:manner How did serfdom develop in and then leave Russia ?";
String arr[] = str.split("((?<=:)|(?=:))|( )");

これは、LookaheadとLookbehind RegExを使用して区切り文字を検索/保持しますが、それらをゴミ箱に移動:するスペースの通常の分割を追加しました。( )

この後、arrは次のようになります。

arr = [DESC, :, manner, How, did, serfdom, develop, in, and, then, leave, Russia, ?]
于 2012-12-12T15:08:29.417 に答える
0

あなたの例のために:

String[] part = line.split(":| ");

lineあなたの例の行はどこにありますか。

正規表現にはspace後が付いていることに注意してください。|

正規表現を読んで、Expressoのようなツールを入手して試してみることをお勧めします。

Expresso:http ://www.ultrapico.com/Expresso.htm

于 2012-12-12T14:39:04.547 に答える
0

文字列値=""; String [] values = value.split( "");

これにより、区切り文字としてスペースごとの配列が取得されます。

于 2012-12-12T14:29:05.607 に答える
0

より包括的なソリューションとして、ここで説明するように、境界マッチャーを使用できます。

String s = "DESC:manner How did serfdom develop in and then leave Russia ?";

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

分割配列には、探しているものが含まれています。

于 2012-12-12T14:36:01.080 に答える
0

あなたはグアバのスプリッターを使うことができます:

Iterable<String> wordsIterable = Splitter.on(Pattern.compile("\\b")).trimResults().omitEmptyStrings().split(string);
String[] words = Iterables.toArray(wordsIterable, String.class);
于 2012-12-12T19:31:21.000 に答える