以下のように複数の文字を持つ可能性のある複数のトークンに従って、文字列を分割する必要があります。
単語1:単語2|単語3||単語4|単語5|||単語6|単語7
上記の文字列を「:」、「|」、「||」、「|||」に従ってトークン化する必要があります。StringTokenizer または正規表現分割を使用してそれをトークン化するコードは何ですか??..覚えておいてください、結果の配列にもトークンが必要です...
StringUtils
Lang APIを使用できます。
同じ Javadoc をここで見つけてください。
次の方法があります-
Substring/Left/Right/Mid
- null セーフな部分文字列抽出SubstringBefore/SubstringAfter/SubstringBetween
- 他の文字列に関連する部分文字列の抽出明らかに、次のように文字列を分割できます。
line.split ("[:|]+")
res113: Array[java.lang.String] = Array(word1, word2, word3, word4, word5, word6, word7)
しかし、区切り文字は何でしたか?まあ-明らかに反対です:
line.split ("[^:|]+")
res114: Array[java.lang.String] = Array("", :, |, ||, |, |||, |)
これは StringTokenizer で可能です。しかし、これは多段階のプロセスでなければなりません。
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);
}