我正在编写一个分隔符检查程序。当用户如检查字符是否匹配可接受字符列表
12+{2*[3*(24+45)+5]}
我需要检查是否分隔符匹配输入公式(有点像什么我们表达了java编译器检查)。
我知道这可以用一吨的if
/else if
语句来完成,但我记得使用正则表达式的字符串,例如:
if(s.matches("[abc]+")
System.out.print(s);
但是,这并不对人物的工作。如果我可以写出类似于上面的表达式:
for(byte i = 0; i < aString.length(); i++)
{
if(aString.charAt(i).matches("[({[]})]+") // maybe '[]' is a problem
stack.push(aString.charAt(i));
}
这样的方法是否适用于字符?我能做什么?
我认为这是一个错误的路要走。它可能变得强大丑陋。例如,你将如何处理''[3 +(2 * 4])“'? –
我只需要知道特定字符是否可以接受。如果是 - 使用另一种算法 - 我会检查它是否与前一个匹配;如果没有,则会抛出异常。所以这个检查过程会跳过字母,数字,算术运算符等。 –
啊所以这个算法不会在意分隔符的排序吗? –