• public static String getInput( ){

    String getInput = new String();

    java.io.BufferedReader reader =
    new java.io.BufferedReader( new java.io.InputStreamReader( System.in ) );

    try{
    getInput = reader.readLine();
    System.out.println("Sie haben eingeben" + getInput);
    }
    catch ( Exception e ){
    System.out.println( getInput );
    }
    // da ist der fehler
    return getInput; //oder??
    }

    hi aufgabe war es einen string einzulesen aus der konsole
    und ich habe mir die methode so geschrieben...
    aber er bringt mir immer den fehler
    missing return statement, wisst ihr wo das mein fehler ist, den ich ja gefunden habe?!
    Aber nun geht das compilieren eine ewigkeit, wisst ihr wo da der fehler ist???
    und wie kann ich dann z.b. auf meinen text den ich eingegeben habe auf einzelne wörter zugreifen??
    danke für eure hilfe
    grüße
    simi

  • Ich kann den Fehler nicht nachvollziehen: Der Code funktioniert bei mir. Wenn das Compilieren lange dauert (javac), dann kann das eigentlich kaum an Deinem Code liegen.


    und wie kann ich dann z.b. auf meinen text den ich eingegeben habe auf einzelne wörter zugreifen??

    Mit der Methode [url=http://java.sun.com/javase/6/docs/….String,%20int)]String#split(String)[/url] kannst Du den Text anhand der Leerzeichen und Zeilenumbrueche trennen:

    PHP
    String[] words = input.split("\\s+");

    Alternativ kannst Du auch gleich zu Beginn nur einzelne Woerter einlesen, anstatt erst alles einzulesen. Also z.B. statt readLine() den Stream Byteweise einlesen. Weil das mit dem BufferedReader etwas muehsam ist, gibt es seit Java 6 die Klasse java.util.Scanner, mit der das einfacher geht.


    Dann hast Du hier noch einen kleinen Fehler:

    PHP
    String getInput = new String();

    Der Name 'getInput' deutet an, das die Variable etwas tut. Das ist aber nicht der Fall: Die Variable stellt aber einfach den Text dar, den Du eingelesen hast. Das 'Input holen' tut ja die Methode und nicht die Variable. Also 'input' oder 'text' waehren passender.

  • Ich kann den Fehler nicht nachvollziehen: Der Code funktioniert bei mir.


    das ist leicht erklaert: gestern war im code noch kein "return getInput; //oder??", den teil hat er ueber nacht dazu geschummelt. ohne hat es natuerlich zu einem "missing return statement" gefuehrt, no na ned.
    und warum hab ich ihm das nicht schon gestern verraten? weils mir am sack geht, dass die leute einfach keine code-tags verwenden.

    Willfähriges Mitglied des Fefe-Zeitbinder-Botnets und der Open Source Tea Party.

  • okey habe nun den Fehler rausgefunden und ihn ja auch verbessert.
    leider kann ich gar nicht mal einen text eingeben....
    oh mann wie geht denn dass??
    Wenn ich auf Ausfürhen gehe, dann kommt die endlosschleife und ich kann noch nicht mal einen text eingeben:(
    wir programmieren mit blueJ

  • Naja, poste mal deinen Code, wie du ihn jetzt hast. Keine Ahnung, was du da alles ausgebessert hast, was du geschrieben hast...
    Und wie schon erwähnt, verwende code-Tags sonst kannst es genauso gut auf einen Baum im Wald eingravieren.

  • also meine Eingabe läuft nun endlich :)
    wie kann ich nun eine neue methode schreiben, damit ich die einzelnen buchstaben aufzählen kann
    also wenn ich "Anna" eingebe, dass er mir ausgibt
    a=2 n=2
    Also ich denke dass ich vielleicht so vorgehen sollte und zwar die string eingabe in einen array umwandeln?? (wenn ja wie) und dann auf die einzelnen elemente zugreife und diese abfrage oder gibt es da eine einfachere methode??

    grüße simi

  • die string eingabe in einen array umwandeln?? (wenn ja wie)

    Schau Dir einfach mal die Klasse String an, was die alles machen kann:

    http://java.sun.com/javase/6/docs/api/java/lang/String.html

    Da findest Du schon was.

    PS: Der Sinn und Zweck von diesen CODE tags in den Postings ist es , das man die Einrückung des Textes sehen kann. Das macht aber natuerlich nur Sinn, wenn Dein Text ueberhaupt sinnvoll eingerückt ist. So wie jetzt sieht dein Code noch genauso unleserlich aus wie vorher.

  • Hallo Frisco,

    Ich weiss nicht genau, warum Du mir Diese beiden Fragen als private Messages geschickt hast:

    Zitat von Frisco


    okey und wie rückte man dann einen solchen text gut ein??

    Zitat von Frisco


    könntest du mir nicht vielleicht denn quellcode einigermaßen in groben schritten aufschreiben, wäre dir echt sehr dankbar...

    Aber wenn Du nicht weißt wie man Code einrückt oder wie man eine Klasse anhand ihrer Dokumentation benutzt, dann bin ich mir sicher, das Du dir bis jetzt noch nicht besonders viel Zeit genommen hast, um die Grundlagen zu lernen.

    Ich kann Dir hier nicht alles erklären, was Du wissen musst. Aber hier findest Du ein paar Bücher, die Dir weiterhelfen können: http://www.informatik-forum.at/showthread.php?t=56323.

  • Danke für deiner Ernüchterung, also ich habe mich nun intensiv, also bis jetzt mit der matierie beschäftig und habe etwas gefunden.
    unzwar mit dem befehl to.charArry(); müsste meinen string in ein Array umwandeln. Aber nun ist mein Porblem schriebe ich die in die gleiche Methode oder kann ich auch eine neue Methode anfangen? und zum vergleichen der buchstaben verwende ich den Ausdruck "split" könnte jemand mit mir zusammen nmal machen, wie ich aus der API documents sowas anwenden kann, es soll mir keiner vorsagen wie ich es machen soll, nur mal am anfang mir helfen wie ich da anfange....

  • Hast du dir mal die Beispiele bei split angesehen? Das teilt einen String bei bestimmten Ausdrücken in mehrere Strings. Du willst die einzelnen Chars des Strings in einem Array. Dazu gibt's die Methode toCharArray() - hast du wirklich alle Methoden von String durchgelesen? Würde ich mal machen inkl. der Kurzbeschreibung. Führt dich vielleicht nicht schnell zum Ziel aber bringt dich eher weiter...
    Also:

    Code
    String foo;
    char bar[] = foo.toCharArray();


    Eine Methode rufst du immer über die Instanz einer Klasse auf. toCharArray() ist in der Klasse String. foo ist ein String, also eine Instanz von String. Du schreibst dann einfach einen "." und hängst den Methodennamen dran.

    Die zweite Möglichkeit wäre, dass du überhaupt kein char Array erzeugst, sondern einfach die Methode charAt() verwendest.

  • Danke für eure Hilfe, ich werde nun in Zukunft mich mehr anstrengen und nicht euch die aufgabe machen lassen, da ich nun die aufgabe selber *freu*
    gemacht habe, fing ich an ein bissel zu spieln, und zwar würde ich gerne wissen, wenn ich einen String einlese, kann ich ihn dann einfach mit dem befehl: als bsp.
    string str=25;
    Double d = Double.valueOf(str).doubleValue();
    zudem ginge dann der befehl um diese double zahl in eine dualzahl umzuwandeln mit dem befehl:
    string binaer = Double.toBinaryString(dezimal);
    System.out.println(binaer);
    oder ist das doppel gemoppelt??

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!