C#
Split Function
与 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>
使用此代码:(来自 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/