0

以下に示すように、Javaでコードを記述しました

public class sstring  
{  
    public static void main(String[] args)  
    {  
    String s="a=(b+c); string st='hello adeel';";  
    String[] ss=s.split("\\b");  
    for(int i=0;i<ss.length;i++)  
        System.out.println(ss[i]);  
    }  
}   

このコードの出力は

a
=(
b
+
c
);
string

st
='
hello

adeel
';

=( または ); を分割するにはどうすればよいですか。単一の要素ではなく、2 つの個別の要素でなど。この配列で。つまり、私の出力は次のようになります

a
=
(
b
+
c
)
;
string

st
=
'
hello

adeel
'
;

出来ますか ?

4

2 に答える 2

2

\\w+これは、単語(小文字の w) または単語以外の文字\\W(大文字の W)を検索するたびに一致します。

上記の@RohitJainのコメントと同様に、Javaの文字列メソッドを分割して区切り文字を含む配列を返すことができるという受け入れられない答えです。

public String[] getParts(String s) {
    List<String> parts = new ArrayList<String>();
    Pattern pattern = Pattern.compile("(\\w+|\\W)");
    Matcher m = pattern.matcher(s);
    while (m.find()) {
        parts.add(m.group());
    }
    return parts.toArray(new String[parts.size()]);
}
于 2012-12-26T16:49:17.500 に答える
1

そこでこのコードを使用してください。

Pattern pattern = Pattern.compile("(\\w+|\\W)");
Matcher m = pattern.matcher("a=(b+c); string st='hello adeel';");
while (m.find()) {
System.out.println(m.group());
}
于 2012-12-26T17:29:18.843 に答える