Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 分割函数返回<;不匹配的结束…>;错误_Java_String - Fatal编程技术网

Java 分割函数返回<;不匹配的结束…>;错误

Java 分割函数返回<;不匹配的结束…>;错误,java,string,Java,String,C#splitfunction与Java不同吗?当我试图用分隔符拆分字符串时,为什么会出现此错误 Exception in thread "AWT-EventQueue-0" java.util.regex.PatternSyntaxException: Unmatched closing ')' ) at java.util.regex.Pattern.error(Pattern.java:1924) at java.util.regex.Pattern.compile(Pat

C#
splitfunction
Java
不同吗?当我试图用分隔符拆分字符串时,为什么会出现此错误

Exception in thread "AWT-EventQueue-0" java.util.regex.PatternSyntaxException: Unmatched closing ')'
)
    at java.util.regex.Pattern.error(Pattern.java:1924)
    at java.util.regex.Pattern.compile(Pattern.java:1669)
    at java.util.regex.Pattern.<init>(Pattern.java:1337)
    at java.util.regex.Pattern.compile(Pattern.java:1022)
    at java.lang.String.split(String.java:2361)
    at java.lang.String.split(String.java:2403)
... <more stacktrace>
样本值:

AccountID sample values:
      (100) Department
      (100A) Budget
      (12-34F) Others

I want to get 100, 100A, 12-34F from the AccountID.
示例用法:

String AccID = GetAccountID(AccountID);
或者你有别的解决办法吗

C#Split函数与Java不同吗

Split()
的C#版本接受一个字符串标记,在该标记上拆分目标
string

Java版本接受正则表达式
不是有效的正则表达式,因此对
split()
的调用失败

要获得所需的功能,可以对
字符进行转义,如下所示:

String[] oValA = oText.split("\\(");

请注意双斜杠,以说明
\
同时是Java和正则表达式转义字符。

通常可以通过regex replace/find来完成

private String getAccountID(String str)
{
    // ^ start, .* any chars, \\( open parenthesis, ([^)]*) no end parenthesis = $1,
    // \\) end parenthesis, .* $ any chars upto end.

    String accountID = str.replaceFirst("^.*\\(([^)]*)\\).*$", "$1");

    // If no matching, accountID == str.
    return accountID == str ? "" : accountID; 
}

谢谢你提供的信息,先生。你能帮我建立一个表达吗?
private String getAccountID(String str)
{
    // ^ start, .* any chars, \\( open parenthesis, ([^)]*) no end parenthesis = $1,
    // \\) end parenthesis, .* $ any chars upto end.

    String accountID = str.replaceFirst("^.*\\(([^)]*)\\).*$", "$1");

    // If no matching, accountID == str.
    return accountID == str ? "" : accountID; 
}