Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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_Regex_String - Fatal编程技术网

Java 基于多个分隔符拆分字符串

Java 基于多个分隔符拆分字符串,java,regex,string,Java,Regex,String,我的字符串包含 {我的办公室7天24小时开放,如果您有任何疑问,请与我们联系。} 我想把它分成几个部分 {my},{office},{opens},{24},{/},{7},{,},{,},{if},{you},{have},{any}, {question}、{(}、{query}、{}、{contact}、{with}、{us}、{.} 意思是,若字符串的单个文本仅包含字符或数字,则将其分隔。如果文字包含带字符或数字的特殊字符,请在特殊字符之前分隔字符,在特殊字符之后分隔字符和特殊字符 我正

我的字符串包含

{我的办公室7天24小时开放,如果您有任何疑问,请与我们联系。}

我想把它分成几个部分

{my},{office},{opens},{24},{/},{7},{,},{,},{if},{you},{have},{any}, {question}、{(}、{query}、{}、{contact}、{with}、{us}、{.}

意思是,若字符串的单个文本仅包含字符或数字,则将其分隔。如果文字包含带字符或数字的特殊字符,请在特殊字符之前分隔字符,在特殊字符之后分隔字符和特殊字符

我正在寻找任何解决方案,通过使用string.split()或使用任何其他可选逻辑。提前感谢。

您可以尝试以下方法:

String str = "my office opens 24/7, if you have any question (query) contact with us.";

String[] splited = str.split("(?=[()./,])|(?<=[()./,])|\\s");
String str=“我的办公室全天候开放,如果您有任何问题(疑问),请与我们联系。”;
String[]splited=str.split((?=[()。/,])|(?您可以尝试以下方法:

String str = "my office opens 24/7, if you have any question (query) contact with us.";

String[] splited = str.split("(?=[()./,])|(?<=[()./,])|\\s");
String str=“我的办公室全天候开放,如果您有任何问题(疑问),请与我们联系。”;

String[]splited=str.split((?=[()/,]))|(?我将添加到您的答案中,因为您有一个非常好的正则表达式!我发现这个答案仍然留下一些空白。我添加了一些行以生成所要求的确切输出。:-)

import java.util.ArrayList;
公开课范例{
公共静态void main(字符串[]args){
String str=“我的办公室开门24$7,如果您有任何问题(疑问),请与我们联系。”;

String[]split=str.split((?=[\\W])|(?我将添加到您的答案中,因为您有一个非常好的正则表达式!我发现这个答案仍然留下一些空白。我添加了一些行以生成所要求的确切输出。:-)

import java.util.ArrayList;
公开课范例{
公共静态void main(字符串[]args){
String str=“我的办公室开门24$7,如果您有任何问题(疑问),请与我们联系。”;


String[]split=str.split((?=[\\W])|)(?发布一个解决方案的尝试我认为这可以通过正则表达式来实现。您的字符串包含字符“{”?或者您只是将其放在这里来表示simbolizeno,”{'仅用于演示,在此发布一个解决方案的尝试。我认为这可以通过正则表达式实现。您的字符串包含字符“{”?或者您只是将其置于simbolizeno中,'{'仅用于演示,在此感谢您的回复,我运行您的答案,它与解决方案类似,但它不会打破24/7@FarazSultan我已将
\\s
放在括号外,以不保留分割数组中的空白,但如果它起作用,则没有问题:)@约翰尼·威勒:如果我在字符串中添加另一个特殊字符怎么办?比如说“$”或“@”?我认为你的答案很好,但并不符合要求。我只是吹毛求疵,并添加了一些争论。:-)@拉斐尔:是的,这是因为缺乏关注。我已经更新了我的answer@Johnny威勒:补充了另一个答案,实际上,什么只是去除留下的空间。:-)谢谢你的回答,我运行你的答案,它类似于解决方案,但它没有打破24/7@FarazSultan我已将
\\s
放在括号外,以不保留分割数组中的空白,但如果它起作用,则没有问题:)@Johnny Willer:如果我在字符串中添加另一个特殊字符怎么办?比如“$”或“@”?我认为你的回答很好,但并不真正符合要求。我只是吹毛求疵,增加了一些争论。:-@Rafaelbi是的,这是缺乏关注。我更新了我的answer@Johnny威勒:补充了另一个答案,实际上,什么只是去除留下的空间。:-)