-2

以下のように複数の文字を持つ可能性のある複数のトークンに従って、文字列を分割する必要があります。

単語1:単語2|単語3||単語4|単語5|||単語6|単語7

上記の文字列を「:」、「|」、「||」、「|||」に従ってトークン化する必要があります。StringTokenizer または正規表現分割を使用してそれをトークン化するコードは何ですか??..覚えておいてください、結果の配列にもトークンが必要です...

4

4 に答える 4

1

StringUtilsLang APIを使用できます。

同じ Javadoc をここで見つけてください。

次の方法があります-

  1. Substring/Left/Right/Mid- null セーフな部分文字列抽出
  2. SubstringBefore/SubstringAfter/SubstringBetween- 他の文字列に関連する部分文字列の抽出
于 2012-05-22T11:02:56.890 に答える
0

明らかに、次のように文字列を分割できます。

line.split ("[:|]+") 
res113: Array[java.lang.String] = Array(word1, word2, word3, word4, word5, word6, word7)

しかし、区切り文字は何でしたか?まあ-明らかに反対です:

line.split ("[^:|]+") 
res114: Array[java.lang.String] = Array("", :, |, ||, |, |||, |)
于 2012-05-22T12:25:20.210 に答える
0

これは StringTokenizer で可能です。しかし、これは多段階のプロセスでなければなりません。

于 2012-05-22T11:05:28.110 に答える
-1

APIが利用可能かどうかはわかりません。以下のように解決できます。

ステップはあるべきです。

1.文字列を取る

2.置換する正規表現を定義する//事前に知っておく必要があります

3.すべての式をループする

4.すべての式をスペースに置き換えます。

5.文字列トークナイザーを使用できるようになりました。

String str="word1:word2|word3||word4|word5|||word6|word7";
    String[] tokens={"[:]","[|]{3}","[|]{2}","[|]"};
    for (int i = 0; i < tokens.length; i++) {
        str=str.replaceAll(tokens[i], " ");
        System.out.println(str);
    }
于 2012-05-22T11:19:13.603 に答える