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
';

我应该怎么做才能拆分 =( 或 ); 等在两个单独的元素中,而不是单个元素中。在这个数组中。即我的输出可能看起来像

a
=
(
b
+
c
)
;
string

st
=
'
hello

adeel
'
;

是否可以 ?

4

2 回答 2

2

这与每个查找单词\\w+(小 w)或非单词字符\\W(大写 W)匹配。

这是java 的 can split string 方法返回带有分隔符的数组以及@RohitJain 的上述注释的不被接受的答案。

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 回答