web-dev-qa-db-ja.com

文字列を2つの区切り文字で分割するにはどうすればよいですか?

myString.split("something")を使用して文字列を分割できることを知っています。しかし、文字列を2つの区切り文字で分割する方法はわかりません。

例:

mySring = "abc==abc++abc==bc++abc";

次のようなものが必要です。

myString.split("==|++")

RegularExpressionとは何ですか?

16
Bobs

これを使って :

 myString.split("(==)|(\\+\\+)")
32
Denys Séguret

2つの部分文字列を使用して分割する必要がある場合の方法:

String mainString = "This is a dummy string with both_spaces_and_underscores!"
String delimiter1 = " ";
String delimiter2 = "_";
mainString = mainString.replaceAll(delimiter2, delimiter1);
String[] split_string = mainString.split(delimiter1);

2番目の区切り文字のすべてのインスタンスを最初に置き換え、最初の区切り文字に分割します。

注:replaceAllを使用すると、delimiter2に正規表現を使用できます。したがって、実際にdelimiter2のすべての一致をdelimiter1の正規表現に一致する文字列に置き換える必要があります。

10
Prasanth

これを使用できます

        mySring = "abc==abc++abc==bc++abc";
        String[] splitString = myString.split("\\W+");

正規表現\ W + --->非単語文字に基づいて文字列を分割します。

これを試して

String str = "aa==bb++cc";
String[] split = str.split("={2}|\\+{2}");
System.out.println(Arrays.toString(split));

答えは

[aa, bb, cc]

{2}は、処理文字の2文字と一致します。 =または+(エスケープ)のいずれかです。両側に一致

\ in Javaをエスケープしているので、正規表現は実際に={2}|\+{2}

5
RNJ