2016-11-28 8 views
0

Ich habe ein paar Anfänger-Java-Beispiele gelöst und es gibt eine Frage, für die ich eine neue Zeichenfolge zurückgeben muss, wo das Zeichen im Index n entfernt wurde.Wie entferne ich ein Zeichen in einem String in Java?

Zum Beispiel:

missingChar("kitten", 1) → "ktten" 

Ich habe das erste Zeichen im String zu entfernen.

habe ich versucht, diese aber es hat nicht funktioniert:

for (int i=0;i<str.length()-1;i++){ 
    while (i==n){ 
     str=str.replaceFirst(String.valueOf(str.charAt(i)),""); 
     return str; 
    } 
} 

Kann mir jemand sagen, was mit meinem Code falsch?

+3

"Aber es hat nicht funktioniert". Was hat nicht funktioniert? Wo steckst du fest? Erhalten Sie eine Ausnahme? – QBrute

+1

Die Methode, die Sie suchen, ist [substring()] (https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring (int,% 20int)). –

Antwort

6

Hier ist eine einfache Art und Weise zu tun, was Sie wollen:

String missingChar(String s, int i) { 
     return s.substring(0, i) + s.substring(i+1); 
    } 

Der Code, den Sie in Ihrer Frage zur Verfügung gestellt ersetzt das erste Vorkommen des Zeichens in der ganzen Reihe. Und, btw, ein if hätte wegen der return-Anweisung denselben Effekt wie while. Die for-Schleife ist auch nutzlos, weil Sie den Index des Zeichens haben (ich denke, es ist n?)

+0

Ja, ich denke Schleifen sind unnötig 'String a = strstring (0, n); Zeichenfolge b = strstring (n + 1, str.length()); zurück a + b' gearbeitet, danke! –

Verwandte Themen