我有一个像这样的字符串数组 {"0:ADD(10)","1:ADD(20)"} 我如何解析它并从这个字符串中获取值 '10','20' ,
场景是:我正在尝试使用 Apache Mina 服务器编写一个客户端和服务器应用程序,当我在客户端和服务器之间发送消息时,我收到的响应为“0:ADD(10)”
最佳答案
你可以像这样使用正则表达式:
\\((\\d+)\\)
从括号中提取数字。有关 java 正则表达式的更多信息,请参见 here和 here
注意:由于java默认在开头和结尾分别加上了^
和$
,所以我们要在前面和后面加上.*
在我们想要匹配的模式之后。
String[] str = new String[]{"0:ADD(10)","1:ADD(20)"};
Pattern pattern = Pattern.compile("^.*\\((\\d+)\\).*$");
for (int i = 0; i < str.length; i++)
{
Matcher m = pattern.matcher(str[i]);
System.out.println(m.matches());
System.out.println(m.group(1));
}
打印:
true
10
true
20
关于java解析像 "0:ADD(10)"这样的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4438921/