java - 检查对应开/关的方法 "brackets"

标签 java regex libraries brackets

我正在编写一个示例应用程序,其中遇到了以下问题:

我必须检查角色的“兼容性”。

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/

相关文章:

java - JBoss 7 未通过 Java EE6 认证

java - Keybinders 可以实现 keyPressed 和 keyReleased 方法吗?

css - Drupal 8 样式表无法呈现

java - 如何设置 Android Studio 中安装的默认项目?

lisp - 查找 Common Lisp 库

java - 在@RequestBody 中使用 spring 转换器

java - Java 中 BigDecimal 的 BigInteger 幂

javascript - 如何替换 ../../为 d :/in my ajax response in JavaScript?

javascript - 正则表达式允许一个逗号而不是在 JavaScript 中字符串的开头或结尾

java - 将java字符串转换为键值对