這可以通過下面的方法來完成,這是通過使用TreeSet來實現的一組字符串的一種方法來實現的,因此排序可以是內置的句柄。它只是一個簡單的轉換集合的字符串和使用equals方法進行比較。 試試下面的代碼:
String str1 = "[0.7419,0.7710,0.2487]";
String str2 = "[\"0.7710\",\"0.7419\",\"0.2487\"]";
String jsonArray = new JSONArray(str2).toString();
Set<String> set1 = new TreeSet<String>(Arrays.asList(str1.replace("[", "").replace("]", "").split(",")));
Set<String> set2 = new TreeSet<String>(Arrays.asList(jsonArray.replace("[", "").replace("]", "").replace("\"", "").split(",")));
if(set1.equals(set2)){
System.out.println(" str1 and str2 are equal");
}
在這裏,在上面的代碼中,我注意到幫助jsonArray,除去「\」字符。
注:
但這不會在一個字符串和其他 字符串,如果重複的元素工作在數量上有所不同,因爲一套不留副本。
嘗試使用列表保持重複的元素,並解決您的問題。
String str1 = "[0.7419,0.7710,0.2487]";
String str2 = "[\"0.7710\",\"0.7419\",\"0.2487\"]";
String jsonArray = new JSONArray(str2).toString();
List<String> list1=new ArrayList<String>(Arrays.asList(str1.replace("[", "").replace("]", "").split(",")));
List<String> list2=new ArrayList<String>(Arrays.asList(jsonArray.replace("[", "").replace("]", "").replace("\"", "").split(",")));
Collections.sort(list1);
Collections.sort(list2);
if(list1.equals(list2)){
System.out.println("str1 and str2 are equal");
}
你的字符串是的'設置'陳述(至少你這麼說)。因此解析它們,然後比較。 –
你的字符串裏只有數字嗎?或者它可以是任何字符? –
我會將這些數字解析爲Double並將它們放入List中。然後一個接一個地排序和比較。 – MTCZiomal