Ich versuche, jeweils einen Buchstaben aus einem Wort zu entfernen. Zum Beispiel, wenn das Wort es Mathe ist, möchte ich versuchen: ath, mth, mah Im Moment habe ich:

  for (int i = 1; i < word.length() ; i++){
         String removed = word.substring(0, i -1) 
             + word.substring(i -1 , word.length());

  //do something with the word
}

Dies funktioniert nicht, da der Fehler angezeigt wird: java.lang.StringIndexOutOfBoundsException: Zeichenfolgenindex außerhalb des Bereichs: -1

Danke für Ihre Hilfe!

0
Chip 18 Apr. 2018 im 23:40

4 Antworten

Beste Antwort

Folgendes sollte funktionieren:

for (int i = 0; i < word.length(); i++) {
   String removed = word.substring(0, i) + word.substring(i + 1);
}
1
Evgeny Kochergin 18 Apr. 2018 im 20:58
for (int i = 1; i < word.length() ; i++){
            String removed = word.substring(0, i - 1) 
                + word.substring(i , word.length());

            System.out.println(removed);
         //do something with the word
        }

Eigentlich müssen Sie von i und nicht von i - 1 ausgehen, um den 2. Teil des letzten Wortes zu erhalten. Zum Beispiel können Sie sehen, dass dies benötigt wird und funktioniert word.substring(i , word.length());

Es wird jedoch keine Ausnahme ausgelöst.

0
muasif80 18 Apr. 2018 im 20:53

So etwas sollte funktionieren.

public class LetterRemover {
  public static void main(String [] args) {
    String hello = "hello";

    for (int i = 1; i < hello.length(); ++i) {
      if(i == 1) {
        System.out.println(hello.substring(i));
      } else {
        System.out.println(hello.substring(0, i-1) + hello.substring(i));
      }
    }
  }
}
0
Shawn Eion Smith 18 Apr. 2018 im 20:54
int wordLength = word.length();
for (int i = 0; i < wordLength; i++) {
    String removed = word.substring(0, i )
            + word.substring(i + 1, wordLength);
    System.out.println(removed);
    //do something with the word
}

Sie müssen jedes Mal 1 Zeichen entfernen, damit Sie es wie zwei Wörter gestalten und miteinander verketten können.

  1. Das erste Wort beginnt ohne Zeichen (0 bis 0) und das zweite Wort (1 bis Wortlänge). Jetzt überspringen Sie also das erste Zeichen.
  2. Sie machen das erste Wort (0 zu 1) und das zweite Wort (2 zu Wortlänge). Also überspringst du jetzt das zweite Zeichen usw.
0
clinomaniac 18 Apr. 2018 im 22:18