java - 检查 String 是否只包含这些字符 {([])}

标签 java

我正在尝试编写一种方法来检查给定字符串是否 包含这些{([])} 字符。

// Test strings
String S = "{U}"  // should give FALSE
String S = "[U]"  // should give FALSE
String S = "U"  // should give FALSE
String S = "([)()]" // should give TRUE

我试过:

    if(S.matches("[{(\\[\\])}]")) {
        return 1;
    }

但这永远不会返回 true。

最佳答案

String.matches() 根据模式匹配整个 字符串。您正在尝试的模式失败,因为它仅匹配单个字符 - 例如,"{".matches("[{(\\[\\])}]") 将返回 true。您需要在正则表达式中添加一个重复 - * 如果您想匹配空字符串,或者 + 如果字符串必须包含至少一个字符,如下所示:

if(S.matches("[{(\\[\\])}]+")) {
    return 1;
}

关于java - 检查 String 是否只包含这些字符 {([])},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49508030/

相关文章:

java - 分段上传问题

java - Glassfish、OSGi Web 应用程序包 (WAB) 和虚拟服务器

java - htmlcleaner 只抓取第一个 body 标签和子节点

java - JSP 迭代继承的用户定义类

java - Tomcat 启动日志 - 严重 : Error filterStart how to get a stack trace?

Java Scanner 输入不等于自身?

java - 选择排序不返回排序数组

java - 手动处理 SOAP/JAX-WS 请求

java - 为什么 JPA TypedQuery 抛出异常 : Parameter value [. ..] 与预期类型 [java.lang.Character] 不匹配?

java - 如何模拟 ECG(心电图)