Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用子字符串作为分隔符拆分或标记java字符串_Java_String_Split - Fatal编程技术网

使用子字符串作为分隔符拆分或标记java字符串

使用子字符串作为分隔符拆分或标记java字符串,java,string,split,Java,String,Split,如何在java中不基于正则表达式而是基于子字符串拆分或标记字符串 String str = "{A={111={i=[a,b,c],ii=[e,f]}, 222={iii=[a,e]}}, B={333={i= [b,c]}}}; 现在,我想基于子字符串“}}”,而不是regex“}”,对字符串进行标记化或拆分。尽管函数指定它将正则表达式作为参数,但这不会阻止您转义任何特殊字符并拆分文字字符串 要转义正则表达式中的特殊字符,可以使用函数,也可以使用反斜杠转义单个字符: String escap

如何在java中不基于正则表达式而是基于子字符串拆分或标记字符串

String str = "{A={111={i=[a,b,c],ii=[e,f]}, 222={iii=[a,e]}}, B={333={i= [b,c]}}};
现在,我想基于子字符串“}}”,而不是regex“}”,对字符串进行标记化或拆分。

尽管函数指定它将正则表达式作为参数,但这不会阻止您转义任何特殊字符并拆分文字字符串

要转义正则表达式中的特殊字符,可以使用函数,也可以使用反斜杠转义单个字符:

String escapedStr = Pattern.quote("}},");

String alternativeEscapedStr = "\\}\\},";
但是,对于您提供的示例,您不需要逃避任何事情:

String str = "{A={111={i=[a,b,c],ii=[e,f]}, 222={iii=[a,e]}}, B={333={i= [b,c]}}}";

String[] splitStr = str.split(Pattern.quote("}},"));
System.out.println(Arrays.toString(splitStr));

String[] splitStr2 = str.split("}},");
System.out.println(Arrays.toString(splitStr2));
输出:

[{A={111={i=[a,b,c],ii=[e,f]}, 222={iii=[a,e],  B={333={i= [b,c]}}}]
[{A={111={i=[a,b,c],ii=[e,f]}, 222={iii=[a,e],  B={333={i= [b,c]}}}]
尽管该函数指定它接受正则表达式作为参数,但这并不阻止您转义任何特殊字符和拆分文字字符串

要转义正则表达式中的特殊字符,可以使用函数,也可以使用反斜杠转义单个字符:

String escapedStr = Pattern.quote("}},");

String alternativeEscapedStr = "\\}\\},";
但是,对于您提供的示例,您不需要逃避任何事情:

String str = "{A={111={i=[a,b,c],ii=[e,f]}, 222={iii=[a,e]}}, B={333={i= [b,c]}}}";

String[] splitStr = str.split(Pattern.quote("}},"));
System.out.println(Arrays.toString(splitStr));

String[] splitStr2 = str.split("}},");
System.out.println(Arrays.toString(splitStr2));
输出:

[{A={111={i=[a,b,c],ii=[e,f]}, 222={iii=[a,e],  B={333={i= [b,c]}}}]
[{A={111={i=[a,b,c],ii=[e,f]}, 222={iii=[a,e],  B={333={i= [b,c]}}}]

到目前为止,您尝试了什么???您的问题只包含需求-它没有显示您方面为自己解决此问题所做的任何努力。请添加您对此问题的尝试-因为此网站不是免费的“我们为您(家庭)工作”服务。除此之外:请转到第页了解如何/问什么。谢谢,请提一下你想要的output@DamCx你不能安静地问用户是否做了什么吗?除了使用多个攻击性和无用的“?到目前为止您尝试了什么?”?您的问题只包含要求-它没有显示您方面为自己解决此问题所做的任何努力。请添加您对此问题的尝试-因为此网站不是免费的“我们为您(家庭)工作”服务。除此之外:请转到第页了解如何/问什么。谢谢,请提一下你想要的output@DamCx你不能安静地问用户是否做了什么吗?关于使用多个攻击性和无用的“?”?感谢您的详细解释!这也起了作用。StringTokeniser使用的是正则表达式,split api的解释是它需要正则表达式,这是令人困惑的地方。@user3322178不客气,如果您的问题已经解决,请接受回答:谢谢您的详细解释!这也起了作用。StringTokeniser使用的是正则表达式,split api的解释是它需要正则表达式,这是令人困惑的地方。@user3322178不客气,如果您的问题已经解决,请接受回答:@user3322178pleasure@user3322178高兴