1

文字列を分割しようとしていますが、区切り文字を次のトークンの先頭に置いておきます (可能な場合)

F120LF120L例: 文字列を分割しようとしています

F120
L
F120
L

私はもう試した

StringTokenizer st = new StringTokenizer(str, "F,L");

しかし、それはただ戻ってきます

120
120
4

3 に答える 3

2

Usesplit()は、すべての実用的な目的StringTokenizer非推奨です(後方互換性のためだけに残っています)。これはうまくいきます:

String delimiter = "L";
String str = "F120LF120L";
String[] splitted = str.split(delimiter);

for (String s : splitted) {
    System.out.println(s);
    System.out.println(delimiter);
}

> F120
> L
> F120
> L
于 2012-05-12T15:16:13.030 に答える
2

docsから、使用できますStringTokenizer st = new StringTokenizer(str, "L", true);。最後のパラメーターは、区切り文字も返す必要があることを指定するブール値です。

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

力ずくでやってみたらどうですか?

String del = "L";
String str = "F120LLF120LLLLF12L";
int i = 0;

while (true) {
    i = str.indexOf(del, i);
    if (i == -1) break;
    String a = str.substring(0, i);
    String b = str.substring(i + del.length());
    str = a + " " + del;
    str += b.startsWith(del) || b.length() == 0 ? b : " " + b;
    i = a.length() + del.length() + 1;
}

System.out.println(str);
// Will print: F120 L L F120 L L L L F12 L
于 2012-05-12T17:02:45.933 に答える