java - Split 函数返回 <Unmatched opening...> 错误

标签 java string

C# Split FunctionJava 不同吗?当我尝试使用分隔符分割字符串时,为什么会出现此错误?

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>

使用此代码:(来自 String Split 的教程)

private String GetAccountID(String xStr)
{
    String oText = xStr;
    String[] oValA = oText.split(")");
    String[] oValB = oValA[0].split("(");

    return oValB[1]; 
}

示例值:

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);

或者您有其他解决方案吗?

最佳答案

Is C# Split Function different from Java?

Split() 的 C# 版本接受单个字符串标记,用于分割目标字符串

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

要获得所需的功能,您可以转义 ( 字符,如下所示:

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

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

关于java - Split 函数返回 <Unmatched opening...> 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9660887/

相关文章:

C# 字符串排列

java - 语句中的回文 : Java

java - 使用 Google Guava Graph API 进行图转置

java - JsonMappingException : Cannot find a deserialzer for non-concrete Map type

java - 使用 java.nio.Files 或 java.io 类创建 java.io.BufferedWriter

java - Spring - 两种不同的 POST 方法,具有相同的 URL,但生成的内容类型不同

java - Hibernate map enum 按属性值

java正则表达式用单个字母替换word中的任何双字母

java - 如何通过字符串从类的对象中获取值?

c - 通过使用 strsep 拆分来解析 CSV 文件