从java中提取子串

从java中提取子串,java,string,Java,String,我有一个字符串,用大括号括起来,像这样{X,X},{Y,Y},{Z,Z} 我想把字符串和大括号一起提取出来,这样输出就可以 String 1={X,X} String 2={Y,Y} String 3={Z,Z} 用另一个非逗号字符(例如句点)替换大括号内分隔对的逗号。然后按该字符拆分字符串 String str=“{X,X},{Y,Y},{Z,Z}”; 字符串tmp=str.replace(“},{,“}.{”); 系统输出打印LN(tmp); 字符串[]elems=tmp.split(“\

我有一个字符串,用大括号括起来,像这样
{X,X},{Y,Y},{Z,Z}
我想把字符串和大括号一起提取出来,这样输出就可以

String 1={X,X}
String 2={Y,Y}
String 3={Z,Z}

用另一个非逗号字符(例如句点)替换大括号内分隔对的逗号。然后按该字符拆分字符串

String str=“{X,X},{Y,Y},{Z,Z}”;
字符串tmp=str.replace(“},{,“}.{”);
系统输出打印LN(tmp);
字符串[]elems=tmp.split(“\\”);
for(int i=0;i
我的建议是使用正则表达式,因为您知道,不能只使用split函数

可以使用以下正则表达式拆分所需的字符串:

{[^,]+(,)[^,]+}
有关regex的更多信息,请访问
要测试此正则表达式,请访问

它可能与以下内容分离:

输出:

3 -> 
{ X, X }
{Y,Y}
{Z,Z}

但是@NitinBisht,它将产生像
{X
X}
{Y
…而不是
{X,X}
{Y,Y}
。@ganjaam它将产生{X,X}{Y,Y}和{Z},试试看it@NitinBisht下面显示什么:
System.out.println(s.split(“,”).length)
?尝试了这种方法,但得到了这个错误,java.util.regex.PatternSyntaxException:index 1}附近非法重复,{@Jagan类
java.lang.String
方法中的参数不是正则表达式。我猜您调用的是方法
replaceAll
而不是方法
replace
3 -> 
{ X, X }
{Y,Y}
{Z,Z}