0

私はJavaプログラミングに不慣れで、StringTokenizerクラスに出くわしました。コンストラクターは、分割される文字列と、元の文字列を分割するときに各文字が個別の区切り文字として扱われる別のオプションの区切り文字列を受け入れます。正規表現を区切り文字として渡す文字列を分割する方法があるかどうか疑問に思いました。例えば:

String s="34.5xy32.6y45.7x36xy"
StringTokenizer t=new StringTokenizer(s,"xy");
System.out.println(t.nextToken());
System.out.println(t.nextToken());

実際の出力は次のとおりです。

34.5
32.6

ただし、必要な出力は次のとおりです。

34.5
32.6y45.7x36

皆さんがお役に立てば幸いです。また、StringTokenizerクラスでそれが不可能な場合は、何らかの方法を提案してください。

前もって感謝します。

ps提供されたセットのうち、StringTokenizerが区切り文字として現在使用している文字を知る方法はありますか?

4

2 に答える 2

3

ここで使用したい場合はString.split()、これにより、目的の出力を持つ配列が得られます。

それはあなたの入力を受け取り、あなたが提供するあなたの文字列の完全一致の周りにそれを分割します。StringTokenizerは、正規表現ではなく、指定したセットのいずれかを分割します。

したがって、コードを次のように変更します。

String s="34.5xy32.6y45.7x36xy";
String[] splitString = s.split("xy");
System.out.println(splitString [0]);
System.out.println(splitString [1]);

より複雑な例では、配列の境界チェックを行って、配列の最後から外れないようにする必要があります。

于 2012-08-18T09:44:45.637 に答える
0

これで試してください。

String s="34.5xy32.6y45.7x36xy";
final String SPLIT_STR = "xy";
final String mainStr = "34.5xy32.6y45.7x36xy";
final String[] splitStr = mainStr.split(SPLIT_STR);
System.out.println("First Index Of xy : " +
mainStr.indexOf(SPLIT_STR));
for(int index=0; index < splitStr.length; index++) {
System.out.println("Split : " + splitStr[index]);
}
于 2012-08-18T09:55:27.793 に答える