Java 如何将字符串拆分到delimeter也是令牌的数组中?

Java 如何将字符串拆分到delimeter也是令牌的数组中?,java,string,delimited-text,Java,String,Delimited Text,如何将字符串拆分到delimeter也是令牌的数组中?例如,我有一个字符串“var1*var2+var3”或“var1*var2+var3”,我想用delimeter“[\\+\/\\+\-]”拆分这个字符串,这样结果将是一个这样的数组: {"var1 ", "*", " var2 ", "+", " var3"} (或{“var1”、“*”、“var2”、“+”、“var3”}) 我该怎么做呢?实际上,您的分隔符应该是空格或空格: string.split("(\\b)+") 这将按空

如何将字符串拆分到delimeter也是令牌的数组中?例如,我有一个字符串
“var1*var2+var3”
“var1*var2+var3”
,我想用delimeter
“[\\+\/\\+\-]”拆分这个字符串,这样结果将是一个这样的数组:

{"var1 ", "*",  " var2 ", "+", " var3"} 
(或
{“var1”、“*”、“var2”、“+”、“var3”}


我该怎么做呢?

实际上,您的分隔符应该是空格或空格:

string.split("(\\b)+")

这将按空格分隔,因此运算符和变量最终都会出现在结果数组中。

使用一个不使用空格的分隔符。问好,向后看,向前看,这表明但不消耗:

String array = str.split("(?<=[*+/-])|(?=[*+/-])");

String array=str.split((?你不能按空格分割吗

String splittedString = string.split(" ");
同样的问题是:


应根据需要保留空格OP@Tim根据上面的注释,除了根据示例输出应该保留空格外,我在前面已经评论过OP可能可以简单地在空格上拆分,这显然不是事实。