Bin deprimiert, da ich eine ganz einfache Aufgabe nicht lösen kann. Finde den Fehler einfach net.
Ich soll von der Konsole eine Zeichenkette einlesen, in ein Character-Array. Jedes "e" in dieser soll durch ein "y" ersetzt werden. Jedes "a" durch ein "x" !!!
Code:
// a = x
// e = y
import java.io.*;
import java.lang.*;
public class Stringbuilder
{
public static void main(String[] args)
{
try
{
char[] eingabe;
24 StringBuilder sb = new StringBuilder(eingabe);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Bitte geben Sie eine Zeichenfolge ein :");
33 eingabe = br.readLine();
int index = 0;
for(int j=0; j<sb.length()-1; j++)
{
index = sb.indexOf("a");
sb.setCharAt(index,'x');
for(int i=0; i<sb.length()-1; i++)
{
index = sb.indexOf("e");
sb.setCharAt(index,'y');
System.out.println(sb);
}
}
}//try
catch(StringIndexOutOfBoundsException e){}
catch(IOException e){}
}
}
Fehlermeldung:
Cannot find Symbol constructorStringBuilder(char[]) line 24
incompatible types line 33
Habe schon soviele Möglichkeiten versucht. Funzt alles net....
Wenn ich die Zeichenkette allerdings nicht von Konsole lesen, sondern gleich im StringBuilder definiere, funzt es.
Erstmal danke für die Hilfe. Funzt aber immer noch nicht so ganz. Er zeigt immerhin keine Fehlermeldung mehr an. ABer wenn ich Programm starte wandelt er den String einfach nicht um.
Code:
// a = x
// e = y
import java.io.*;
import java.lang.*;
public class Stringbuilder
{
public static void main(String[] args)
{
try
{
char eingabe[] = {};
StringBuilder sb = new StringBuilder(String.valueOf(eingabe));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Bitte geben Sie eine Zeichenfolge ein (max. 10 Zeichen) :");
eingabe = br.readLine().toCharArray();
int index = 0;
for(int j=0; j<sb.length()-1; j++)
{
index = sb.indexOf("a");
sb.setCharAt(index,'x');
for(int i=0; i<sb.length()-1; i++)
{
index = sb.indexOf("e");
sb.setCharAt(index,'y');
System.out.println(sb);
}
}
}//try
catch(StringIndexOutOfBoundsException e){}
catch(IOException e){}
}
}
Sofern ich das Einlesen aus der Konsole weglasse und die Zeichenkette in array definiere, funzt es wieder. Muss ja dann ein logischer Fehler sein, oder??
StringBuilder sb = new StringBuilder(String.valueOf(eingabe));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Bitte geben Sie eine Zeichenfolge ein (max. 10 Zeichen) :");
eingabe = br.readLine().toCharArray();
denk mal über die Reihenfolge nach:
du machst zuerst sb aus dem leeren Array und dann liest du erst die Eingabe