我正在编写一个示例应用程序,其中遇到了以下问题:
我必须检查角色的“兼容性”。
boolean checkIfPairCorrect(Character c1, Character c2) {...}
简而言之,它就像:“检查这些字符是否构成正确的开闭对”。 例如:
配对“(”和“)”返回 TRUE
“{”和“}”对返回 TRUE
配对“(”和“}”返回FALSE//不兼容的括号
“)”和“(”配对返回 FALSE//顺序错误
“a”和“3”对返回 FALSE//“a”或“3”不是可以找到“结束”字符的字符
你会说:“只要写一个正则表达式人就可以了!!!”使用一些互联网帮助,例如:
Regular Expression to match outer brackets
Regex to restrict only one occurrence of open and close brackets using C#
Regexp and brackets article
你是对的,但是...... 这个问题对我来说很困难,因为函数可以采用一些外来字符作为参数(UTF-8 编码),如日语、土耳其语、阿拉伯语等。我不知道哪些字符可以在其他语言(文化)中被视为开闭对,所以我正在寻找一个可以解决我的问题的库。
问题:您是否知道任何对我的情况有帮助的库,或者您有如何处理它的任何提示吗?
最佳答案
为什么没有这样的 map :
Map<Character, Character> pairs = new HashMap<Character, Character>();
pairs.put('(', ')');
pairs.put('{', '}');
pairs.put('[', ']');
...
那么你的方法可能是
boolean checkIfPairCorrect(char c1, char c2) {
return pairs.get(c1) == c2;
}
关于java - 检查对应开/关的方法 "brackets",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16263988/