2016-09-12 6 views
-1

ich in Zeichenfolge müssen Werte in einer Zeichenfolge ersetzen:Zeichen ersetzen

public static String replaceVals(String str) { 
    String[] array = str.split(""); 
    String newStr = ""; 
    for (int i = 0; i < array.length; i++) { 
    newStr += (array[i] == "T") ? "F" : "T"; 
    } 
    return newStr; 
} 

fehlgeschlagen Ergebnisse:

input:   "TFF" 
expected output: "FTT" 
actual output: "FFF" 
+3

Mögliche Duplikat [Wie kann ich Strings in Java vergleichen?] (Http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –

+0

Sie verwenden können, char type und 'toCharArray' Methode –

+0

' array [i] .equals ("T") '... nicht' == '. Verwenden Sie 'equals' zum Vergleichen von' Objects' '==' zum Vergleichen von Primitiven. – brso05

Antwort

1

Ich würde einfach Ihre angegebene Zeichenfolge in ein Char-Array konvertieren, das Array ändern und einen neuen String mit dem modifizierten char-Array zurückgeben.

public static String replaceVals(String str) { 
    String[] array = str.toCharArray(); 
    for (int i=0; i<array.length;i++) { 
     array[i] = array[i] == 'T' ? 'F' : 'T'; 
    } 
    return new String(array); 
} 
0

Sie .equals statt ==

== prüft, ob die Referenz verwenden sollten wo as.equals prüft auf Wert

public static String replaceVals(String str) { 
    String[] array = str.split(""); 
    String newStr = ""; 
    for (int i = 0; i < array.length; i++) { 
    newStr += (array[i].equals("T")) ? "F" : "T"; 
    } 
    return newStr; 
} 
0

können Sie == verwenden, wenn Zeichen so statt Aufspaltung in ein Array von Strings zu vergleichen können Sie String.toCharArray verwenden, um eine Reihe von Zeichen zu erhalten. Dann, wenn Sie vergleichen, müssen Sie das einfache Anführungszeichen verwenden, um ein Zeichen zu erstellen.

public static String replaceVals(String str) { 
    char[] array = str.toCharArray(); 
    String newStr = ""; 
    for (int i = 0; i < array.length; i++) { 
     newStr += (array[i] == 'T') ? "F" : "T"; 
    } 
    return newStr; 
}