Wie finde ich das erste sich nicht wiederholende Zeichen aus einer Zeichenfolge?
Zum Beispiel ist in der Zeichenfolge „Silent King Shen Silent Two“ das erste sich nicht wiederholende Zeichen „王“, weil „Shen“ war wiederholt, „mo“ wurde wiederholt.
public class FindNonRepeatingChar { public static void main(String[] args) { System.out.println(printFirstNonRepeatingChar("沉默王沉沉默二")); System.out.println(printFirstNonRepeatingChar("沉默王沉")); System.out.println(printFirstNonRepeatingChar("沉沉沉")); } private static Character printFirstNonRepeatingChar(String string) { char[] chars = string.toCharArray(); List<Character> discardedChars = new ArrayList<>(); for (int i = 0; i < chars.length; i++) { char c = chars[i]; if (discardedChars.contains(c)) continue; for (int j = i + 1; j < chars.length; j++) { if (c == chars[j]) { discardedChars.add(c); break; } else if (j == chars.length - 1) { return c; } } } return null; } }
Das Ausgabeergebnis ist wie folgt:
王 默 null
Lassen Sie mich über meine Ideen sprechen:
1) Teilen Sie die Zeichenfolge in ein Zeichenarray auf.
2) Deklarieren Sie eine Liste und fügen Sie wiederholte Zeichen darin ein.
3) Die äußere for-Schleife beginnt beim ersten Zeichen. Wenn sie bereits in der Liste enthalten ist, fahren Sie mit der nächsten Runde fort.
4) Die verschachtelte for-Schleife beginnt mit dem Durchlaufen des nächsten Zeichens (j = i + 1) des ersten Zeichens. Wenn ein Duplikat des vorherigen Zeichens gefunden wird, fügen Sie es der Liste hinzu und springen Sie aus der inneren Schleife, wenn Selbst wenn ich das letzte (j == chars.length - 1) finde, kann ich es nicht finden, welches das erste sich nicht wiederholende Zeichen ist, oder?
Das obige ist der detaillierte Inhalt vonWie finde ich das erste sich nicht wiederholende Zeichen in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!