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