2

例えば:strEquation="36+5-8X2/2.5"

私のコードは次のとおりです。

String[] tmp = strEquation.split("[X\\+\\-\\/]+");

for(int i=0; i<tmp.length; i++)
    Log.d("Split array",tmp[i]);

そして、私の出力は次のようになると思いました:

36
5
8
2
2.5

次のように、tmp文字列配列に分割している文字も配置する必要があります。

tmp[0] = 36
tmp[1] = +
tmp[2] = 5
tmp[3] = -
tmp[4] = 8
tmp[5] = X
tmp[6] = 2
tmp[7] = /
tmp[8] = 2.5

それを行う方法はありますか?

4

2 に答える 2

1

文字列を分割するのではなく、すべての一致を取得しようとしていると思います。

Matcher m = Pattern.compile("[X+/-]|[^X+/-]+").matcher(strEquation);
while (m.find()) {
  System.out.println(m.group());
}

しかし、上記の答えはより賢いです:)

また、角括弧内でエスケープ+して文字にする必要はありません。/マイナス ( -) 記号は、リストの最初または最後の文字でない場合にのみエスケープする必要があります

于 2013-09-11T22:04:09.553 に答える