2013-03-28 227 views
0

我有两个字符串,一个是JSON字符串(即我创建一个JSON物镜并使用obj.tostring()它转换为字符串,并将其传递到另一个类)和普通字符串没有字词或含义像“abcdefg”。一个JSON格式字符串进行比较来另一个字符串

下面这是JSON格式字符串S1:

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

另一个字符串是S2: “EoPnAn”

在字符串s2中的字符E表示误差P表示销和A表示钓鱼。

现在我想误差的值进行比较在S1中的“o”是等于s2的第二个字符。 这就是我想检查s2的第二,第四和第六个字符的错误,pin和反钓鱼的值。

如果三者都相等,我想打印“OK”。

我不要求u到我写代码,但给我如何做一个提示。 但是,如果你提供了一个代码或例子,非常感谢。

以下是我想要的过度简化。 对不起,我的代码太简单了,但是会工作吗?

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

String s2 =“EoPnAn”;

炭[] P1 = s1.toCharArray();

char [] p2 = s2.toCharArray();

如果(P1 [31] == P2 [1] & & P1 [41] == P2 [3] & & P1 [88] == P2 [5]){

System.out.println("OK"); 

}

+0

,你能不能给我们到目前为止你做过的代码一堆? – TheEwook

+0

对不起,我没有代码,但我试图使用模式匹配和分割功能令牌。生病在几分钟后发布代码,谢谢 –

回答

1

在给出的结果的例子不是“OK”(引脚为“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"); 
    } 
+0

谢谢,我会先试试你的代码 –

0

你可以利用现有的Java库创建地图的JSON字符串即S1的键值 - 像JacksonGSON

解析S2和从上面的图与值进行比较

相关问题