【发布时间】:2014-05-15 19:51:40
【问题描述】:
所以我在调用 Split 方法时使用字符串作为分隔符。
String[] aExpr;
String strDelimiter = "[-+/=^//%//*//(//);:?]";
aExpr = expr.split(strDelimiter);
这将使用strDelimiter 相应地分解的字符串填充aExpr。
问题是我还希望Split() 方法不仅可以比较strDelimiter,还可以比较这个字符串:
String oprDelimiter = "[abcdefghijklmnopqrstuvwxyz0123456789]+"
这基本上是任何字符后跟数字。我可以将所有这些字符添加到第一个字符串中,但最后的 + 不会让我这样做。 + 表示单词的任何组合都会破坏字符串。关于我该怎么做的任何想法?
【问题讨论】:
-
提供样本输入输出。
-
请显示示例字符串以及应用拆分功能后您期望的结果
-
我现在正在做的是使用一个分隔符并将其拆分为一个数组,然后是另一个。在我拆分两者之后,我将它们放在另一个数组中。假设我输入“1+3+5” 我的 aExpr 数组将有 1、3、5 并且我的 aOpr 数组将有 +、+ 我想要的是将它们放在一个数组中,这样我就不必放以后他们在一起。清楚吗?
-
现在很清楚,您必须使用环视作为分隔符:
String strDelimiter = "(?=[-+/=^%*();:?])|(?<=[-+/=^%*();:?])";环视(前瞻和后视)仅检查字符串中某个位置之前或之后的内容,但不使用字符。它们是“零宽度断言”。 -
//似乎不对。如果您的意思是转义序列,那么您应该使用\\,但您不必在[...](字符类)中转义%*()。