无法在java中分析用户代理字符串

无法在java中分析用户代理字符串,java,user-agent,Java,User Agent,我正在接收以下用户代理字符串 ["Mozilla/5.0","(Macintosh;","Intel","Mac","OS","X","10.8;","rv:31.0)","Gecko/20100101","Firefox/31.0"] 我试图将其解析为字符串并将其转换为字符串数组,但我无法将其读取为字符串。是否有更好的方法读取方括号中的用户代理数据 public class AgentParse{ public static void main(String []args){

我正在接收以下用户代理字符串

["Mozilla/5.0","(Macintosh;","Intel","Mac","OS","X","10.8;","rv:31.0)","Gecko/20100101","Firefox/31.0"]
我试图将其解析为字符串并将其转换为字符串数组,但我无法将其读取为字符串。是否有更好的方法读取方括号中的用户代理数据

public class AgentParse{

     public static void main(String []args){
        String a="""["Mozilla/5.0","(Macintosh;","Intel","Mac","OS","X","10.8;","rv:31.0)","Gecko/20100101","Firefox/31.0"]""";
        String st=a.replace('[', ' ').replace(']', ' ').replace('(', ' ').replace(')', ' ');
        String[] arr=st.split(",");
        System.out.println(arr[0]);

        }

我有一个这样的字符串列表,我不能复制粘贴每个字符串和转义字符。我正在寻找一种java数据类型,它可以保存您现有代码中的上述数据,您似乎正在寻找作为输出的
Mozilla/5.0
。因此,首先,您需要对所有双引号进行转义

String str = "[\"Mozilla/5.0\",\"(Macintosh;\",\"Intel\",\"Mac\",\"OS\",\"X\",\"10.8;\",\"rv:31.0)\",\"Gecko/20100101\",\"Firefox/31.0\"]";
System.out.println(str.split(",")[0].replace("[",""));
它将输出

"Mozilla/5.0"

如果要分析所有字符串

String a = "[\"Mozilla/5.0\",\"(\"Macintosh;\",\"Intel\",\"Mac\",\"OS\",\"X\",\"10.8;\",\"rv:31.0\")\",\"Gecko/20100101\",\"Firefox/31.0\"]";
String[] newArray = a.split(",");
    for (String s : newArray) {
        System.out.println(s);
    }
}
输出

["Mozilla/5.0"
"("Macintosh;"
"Intel"
"Mac"
"OS"
"X"
"10.8;"
"rv:31.0")"
"Gecko/20100101"
"Firefox/31.0"]

错误是什么?您的预期输出是什么?您必须在用户代理stringJava中转义双引号。Java没有三引号字符串。@Ravi我有一个这样的字符串列表,我不能对每个字符串单独转义字符。@srivathsava您必须转义它,否则您需要删除所有双引号。