Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo!
Folgendes Problem, wollte zur Übung zu Strings mir ein kleines Programm schreiben.
Das Programm sollte einem String bestimme Buchstaben "abschneiden" (Hier die Buchstaben "a,e,i,o,u")
Soweit so gut, habe mir die Methoden der String-Klasse zu nutze gemacht und komme nun nicht weiter.
Die Idee war es in einer If-Abfrage einen Vergleich auf die einzelnen Buchstaben zu machen und diese dann mit String.replace(oldchar, newchar) zu ersetzen, was allerdings nicht klappt.
Bestimmt ist es etwas offensichtliches, aber ich sitze bereits seit einer Stunde davor und komme auf keinen grünen Zweig. :/
Anbei der Code.
Java:
package kap6;
public class String_Übungen {
String m_text;
String ersetzt;
public String_Übungen(String text)
{
int index = 0;
char a = 'a', e = 'e', i = 'i', o = 'o', u = 'u';
char leer = 'c';
m_text = text;
for(index = 0; index < text.length(); index++)
{
text.charAt(index);
if(text.charAt(index) == a || text.charAt(index) == e || text.charAt(index) == i || text.charAt(index) == o || text.charAt(index) == u )
{
text.replace(text.charAt(index), leer);
text.trim();
}
// System.out.println("Position: " + index + " Buchstabe: " + text.charAt(index));
System.out.println(text);
}
System.out.println(text);
}
/**
* @param args
*/
public static void main(String[] args) {
String_Übungen test = new String_Übungen("abcdefghi");
System.out.println(test);
}
}
Das Problem ist folgendes:
Die Klasse String ist immutable. Das heißt, sie ist unveränderbar. Deswegen gibt diese Methode "replace" immer einen neuen String zurück. Du musst also jedes Mal sagen:
Java:
string = string.replace(...);
Besser arbeitet man bei solchen Probleme daher mit der Klasse StringBuilder.
Hallo!
Folgendes Problem, wollte zur Übung zu Strings mir ein kleines Programm schreiben.
Das Programm sollte einem String bestimme Buchstaben "abschneiden" (Hier die Buchstaben "a,e,i,o,u")
Für die, die es interessiert wie ich es gelöst hab.
Java:
package kap6;
public class String_Übungen {
static String m_text;
String ersetzt;
public static String String_Übungen(String text)
{
int index = 0;
m_text = text;
char[] c = new char[text.length()];
int inside = 0;
for(index = 0; index < text.length(); index++)
{
char buchstabe = text.charAt(index);
if("aeiouAEIOU".indexOf(buchstabe) >= 0)
continue; // Wird continue ausgelassen, werden nur die nur genau die Zeichen angezeigt wie in der if bedingung aufgelistet
c[ inside++ ] = buchstabe;
// System.out.println("Position: " + index + " Buchstabe: " + text.charAt(index));
// System.out.println(text);
}
System.out.println(text);
return new String(c, 0 , inside); // Gebe neuen String zurück, da Strings "immutable" sind.
}
public static void main(String[] args) {
System.out.println(String_Übungen("Hallo! Das ist ein Teststring wo sehr viel Mist steht. Oben ist er lesbar unten aber nicht mehr!!"));
}
}