0

我有两个字符串,一个是 JSON 字符串(即我创建了一个 json obj 并使用 obj.tostring() 将其转换为字符串并将其传递给另一个类)和一个普通字符串,其字符没有单词或含义,例如“abcdefg” .

下面是 json 格式字符串 s1:

{"email_prompted":"n","error":"o","pin":"c","antiphishing_prompted":"n","antiphishing":"n"}

另一个字符串是 s2: "EoPnAn"

在字符串 s2 中,字符 E 代表错误 P 代表 pin,A 代表反钓鱼。

现在我想比较 s1 "o" 中的错误值是否等于 s2 中的第二个字符。也就是说,我想用 s2 的第二个、第四个和第六个字符检查错误、pin 和反钓鱼的值。

如果这三个都相等,我想打印“ok”。

我不是要求你给我写代码,而是给我一个关于如何去做的提示。但是,如果您提供代码或示例,我们将不胜感激。

以下是我想要的过度简化。抱歉我的代码过于简单,但这会起作用吗?

String s1="{"email_prompted":"n","error":"o","pin":"c","antiphishing_prompted":"n","antiphishing":"n"}" ;

字符串 s2="EoPnAn";

char[] p1 = s1.toCharArray();

char[] p2 = s2.toCharArray();

if(p1[31]==p2[1] && p1[41]==p2[3]&&p1[88]==p2[5]){

System.out.println("OK");

}

4

2 回答 2

1

在给出的示例中,结果不是“ok”(pin 是“c”,而不是“n”):

    String s1 = "{\"email_prompted\":\"n\",\"error\":\"o\",\"pin\":\"c\",\"antiphishing_prompted\":\"n\",\"antiphishing\":\"n\"}";

    String s2 = "EoPnAn";

    String[] s1Parts = s1.replaceAll("[\\{}\"]", "").split("[,:]");
    boolean equal = s2.substring(1, 2).equals(s1Parts[3]) /* error */
            && s2.substring(3, 4).equals(s1Parts[5]) /* pin */
            && s2.substring(5, 6).equals(s1Parts[9]); /* antiphishing */
    if(equal) {
        System.out.println("ok");
    }
于 2013-03-28T16:14:53.890 回答
0

您可以使用可用的 java 库(如JacksonGS​​ON)创建 json 字符串的键值映射,即 s1

解析 s2 并与上图中的值进行比较

于 2013-03-28T16:08:21.063 回答