java解析类似“0:ADD(10)”的字符串

java解析类似“0:ADD(10)”的字符串,java,parsing,Java,Parsing,我有一个像这样的字符串数组{0:ADD10,1:ADD20}我如何解析它并从这个字符串中得到值'10','20' 场景是:我正在尝试使用Apache Mina server编写客户端和服务器应用程序,当我在客户端和服务器之间发送消息时,得到的响应为0:ADD10您可以使用如下正则表达式: \\((\\d+)\\) 从括号之间提取数字。有关java正则表达式的更多信息,请参见 注意:由于java默认情况下在开头和结尾分别添加了^和$,因此我们必须在要匹配的模式之前和之后添加。* String[]

我有一个像这样的字符串数组{0:ADD10,1:ADD20}我如何解析它并从这个字符串中得到值'10','20'


场景是:我正在尝试使用Apache Mina server编写客户端和服务器应用程序,当我在客户端和服务器之间发送消息时,得到的响应为0:ADD10

您可以使用如下正则表达式:

\\((\\d+)\\)
从括号之间提取数字。有关java正则表达式的更多信息,请参见 注意:由于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));
        }
印刷品:

真的

十,

真的

二十


您可以使用如下正则表达式:

\\((\\d+)\\)
从括号之间提取数字。有关java正则表达式的更多信息,请参见 注意:由于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));
        }
印刷品:

真的

十,

真的

二十

你可以试试

int num = Integer.parseInt("0:ADD(10)".split("[()]")[1]);
你可以试试

int num = Integer.parseInt("0:ADD(10)".split("[()]")[1]);

这一行完成以下工作:

String[] arr = str.replace("{", "").replace("}", "").replaceAll("\"\\d+:ADD\\((\\d+)\\)\"", "$1").split(",");

这一行完成以下工作:

String[] arr = str.replace("{", "").replace("}", "").replaceAll("\"\\d+:ADD\\((\\d+)\\)\"", "$1").split(",");

可能有点过分,但这应该行得通

    String input="{\"0:ADD(10)\",\"1:ADD(20)\"}";
    Pattern r= Pattern.compile(":ADD\\(([0-9]*)\\)");
    Matcher m = r.matcher(input);
    while(m.find()){
        System.out.println(m.group(1)); //Result is here
    }

可能有点过分,但这应该行得通

    String input="{\"0:ADD(10)\",\"1:ADD(20)\"}";
    Pattern r= Pattern.compile(":ADD\\(([0-9]*)\\)");
    Matcher m = r.matcher(input);
    while(m.find()){
        System.out.println(m.group(1)); //Result is here
    }
使用:

使用:


对于回复,我怀疑天气是否可以使用正则表达式。对于回复,我怀疑天气是否可以使用正则表达式