Buchstabe aus String entfernen

Hallo,

ob es eine direkte Methode gibt, weiß ich nicht. Aber im folgenden ist ein Code, da kannst du angegeben welche Buchstabe du in der String nicht haben willst. Vorteil ist dabei, wenn du in einem String z.B. lernen.2007 die Buchstabe "e" nicht haben willst. Dann entfernt es dir an zwei Stellen die Buchstabe "e".

Code:
public class BuchstabeAusString {

    /**
      * @param args
     */
    public static void main(String[] args) {
        String lernen = new String("lernen2007");
        String entferntBuchstabe = "e";
        
       char[] stringArray = lernen.toCharArray();
        String neueString = "";
        
        for(int i = 0; i < stringArray.length; i++) {
            
            if(String.valueOf(stringArray[i]).equals(entferntBuchstabe) == false) {
                neueString += String.valueOf(stringArray[i]).toString();
            }
        }
        System.out.println("Meine neue String ist: " + neueString);
    }

}

Andere Möglichkeit wäre dies:

Code:
                //Andere Möglichkeit
		StringBuffer string = new StringBuffer("lernen2007");
		string.deleteCharAt(string.indexOf("e"));
		System.out.println("Die neue String ist: " + string);
 
Zuletzt bearbeitet:
Ergänzungsvorschlag: So hätte man wieder alle "e" gelöscht und keinen Fehler, falls keines vorhanden wäre ;)

Code:
//Andere Möglichkeit
StringBuffer string = new StringBuffer("lernen2007");
int i;
while ((i=string.indexOf("e")) > -1)
    string.deleteCharAt(i);
System.out.println("Der neue String ist: " + string);
 
Moin!
Das Ganze geht auch ohne irgendwelche Selbstbauten:
Code:
String test = "eSeSase";
System.out.println(test.replaceAll("e","")); // entfernt alle "e"

*grüssle*
MeinerEiner
 
hallo, danke erstmal für die Antworten.

Ich möchte nämlich ein Programm schreiben, dass alle Umlaute aus einem String entfernt.

Also hier ist das Programm, aber so geht es noch nicht, der Compiler gibt mir 2 Fehlermeldungen zurück.

Code:
import javax.swing.*;
public class Aufgabe10 {
	
	static String stringRueckgabe(String string) {
		char [] charArray = new char['a','e','i','o','u'];
		 for(int i = 0;i<charArray.length;i++)
		 	if(charArray[i] == string.charAt(i)) str = str.replace("i","");
	}
		
    public static void main(String[] args) {
    	char [] string2 = JOptionPane.showInputDialog("Bitte einen String eingeben").toCharArray();
    	JOptionPane.showMessageDialog(null,"mit Vokalen:" + string2 + "\n" + "ohne Vokale:" + stringRueckgabe(string2));	
    }
}
 
Aha, und welche? Postet doch bitte die Exceptions immer mit. Bei Compilerfehlern ist es meistens sehr ersichtlich, was nicht stimmt. Auf Anhieb fällt mir auf, dass deine Statische Methode zwar einen Rückgabetyp deklariert ("String"), aber nirgendwo was zurückgibt. Da sollte die Compilermeldung allerdings sehr eindeutig sein. Wo ist denn das Problem genau?

REINHAUN!
 
C:\Users\Kiefer\Documents\JCreator Pro\MyProjects\Aufgabe10\src\Aufgabe10.java:13: ']' expected
char [] charArray = new char['a','e','i','o','u'];
^
C:\Users\Kiefer\Documents\JCreator Pro\MyProjects\Aufgabe10\src\Aufgabe10.java:13: <identifier> expected
char [] charArray = new char['a','e','i','o','u'];
 
du hast ein space(leerzeichen) zwischen "char" und "[]"
er erwartet aber, um das Feld als solches zu identifiezieren den Typ "char[]" damit sollte sich die fehler ham.
 
Naja, ich meine, die Methode macht nicht, was du willst.
Du willst ja alle Umlaute aus dem String entfernen.
Meines Erachtens sollte es eher so aussehen (ich nehme mal gleich einen String-Array):

Java:
static String stringRueckgabe(String string) {
	String[] sar = { "a" , "e", "i", "o", "u" }; // Die zu ersetzenden Umlaute
	for (int i = 0; i < sar.length; i++)
		string.replaceAll(sar[i], "");
	return string; // doppelt gemoppelt, replaceAll ersetzt ja im String
}


LG
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück