記号の後に "+、-、*、/、="が出現したときに文字列を分割したいのですが、split関数を使用していますが、この関数は引数を1つしか取ることができません。さらに、 "+"では機能しません。私は次のコードを使用しています:-
Stringname.split("Symbol");
ありがとう。
String.split
は、引数として正規表現を取ります。
これは、String
を分割するために、1つのパラメーターで任意のシンボルまたはテキストの抽象化を代替できることを意味します。
ドキュメントを参照 here 。
これがあなたのケースの例です:
String toSplit = "a+b-c*d/e=f";
String[] splitted = toSplit.split("[-+*/=]");
for (String split: splitted) {
System.out.println(split);
}
出力:
a
b
c
d
e
f
ノート:
Pattern
sの予約文字は、\\
でダブルエスケープする必要があります。 編集:ここでは必要ありません。[]
括弧は、文字クラスを示します。Pattern
sの詳細 ここ 。正規表現を使用できます。
String[] tokens = input.split("[+*/=-]");
注意: -
は、範囲区切り文字と見なされないように、最初または最後の位置に配置する必要があります。
正規表現が必要です。さらに、正規表現OR
演算子が必要です。
String[]tokens = Stringname.split("\\+|\\-|\\*|\\/|\\=");
そのためには、適切な正規表現ステートメントを使用する必要があります。リストした記号のほとんどは正規表現で予約されているため、\
でエスケープする必要があります。
非常にベースラインの式は\+|\-|\\|\*|\=
になります。比較的理解しやすく、必要な各記号は\
でエスケープされ、各記号は|
(または)記号で区切られます。たとえば、^
も追加したい場合は、そのステートメントに|\^
を追加するだけです。
テストと迅速な表現のために、私はwww.regexpal.comを使用するのが好きです