returnDelims
フラグを使用して、区切り文字の2つの後続の出現を確認します。
String str = "ABC|DEF||FGHT";
String delim = "|";
StringTokenizer tok = new StringTokenizer(str, delim, true);
boolean expectDelim = false;
while (tok.hasMoreTokens()) {
String token = tok.nextToken();
if (delim.equals(token)) {
if (expectDelim) {
expectDelim = false;
continue;
} else {
// unexpected delim means empty token
token = null;
}
}
System.out.println(token);
expectDelim = true;
}
このプリント
ABC
DEF
null
FGHT
APIはきれいではないため、レガシー(つまり「ほとんど時代遅れ」)と見なされます。パターンマッチングが高すぎる場合(これは非常に長い文字列の場合にのみ当てはまるはずです)、またはAPIが列挙を期待する場合にのみ使用してください。
に切り替える場合はString.split(String)
、必ず区切り文字を引用符で囲んでください。手動("\\|"
)または自動でstring.split(Pattern.quote(delim));