Java / Groovyはどのように私は正しく2つの文字列値を比較するのですか?.equals()に動作していません

monty_bean:

[OK]を、これは私がナット駆動されます。私は、Java / Groovyのとあまりにも精通していないよしかし、正しい方向に私を指すしてください!

私は、「[」「 『B』、 『C』]」のような応答テキストでGET呼び出しを持っています

私は最終的に文字列を比較することを反復処理するArrayListにそれを得ました。私は.equalsIgnoreCase()、のcompareTo()、Objects.equals()などは、それが一致しない、().equalsを試してみました。私は、「文字列と同じではない」を得ます。私は何をしないのですか?

def sb= new StringBuffer();
def rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));

def line;
while((line=rd.readLine()) !=null) {
    sb.append(line);
}

//sb = "["a","b","c"]"

List<String> tempList = new ArrayList<String>(Arrays.asList(sb.replaceAll("\\[|\\]","").split(",")));
int count = 0;
String strToFind= "a";

for (String iT : tempList){
    if (strToFind.equals(iT)){
        log.debug("\nString the same\n");
    } else {
        log.debug("\nString not the same\n");
    }
}
マイケルMichailidis:

あなたは試合にしようと文字列は引用符を持っているので、あなたが同じではありません「」どの==やっているので、私はそれらの長さを比較してみたものを検証するために、あなたのデバッガを使用しない場合はそれは..起こります(またはそれらを印刷)。答えは、この文字列SB =「[」「 『B』、 『C』は]」にInputStreamReaderにあなたがそれを提供するのと同じ方法をfeededたために適用されます。

BufferedReader rd = new BufferedReader(new InputStreamReader(new ByteArrayInputStream("[\"a\",\"b\",\"c\"]".getBytes())));

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=336607&siteId=1
おすすめ