einlesen mehrer Strings
Results 1 to 7 of 7
  1. #1

    Title
    Principal
    Join Date
    Mar 2002
    Posts
    32
    Thanks
    0
    Thanked 0 Times in 0 Posts

    einlesen mehrer Strings

    Hab wieder mal ein problem

    Mit readWord() kann ich immer nur ein Wort einlesen. sobald ein Leerschritt ist, ist der string zu ende.

    Muss aber jetzt mehrere Wörter einlesen, wobei ich nicht weis wieviele.

    ich zeig es am besten an einem beispiel

    Bsp.:

    Hugo Erika Peter usw.

    mit dem readWord
    liest es mir aber nur den Hugo ein.
    wie kann ich jetzt aber alle drei namen in einen String lesen?

  2. #2
    Wings-of-Glory's Avatar
    Title
    CO-Administrator
    Join Date
    Jan 2002
    Posts
    4,001
    Thanks
    347
    Thanked 504 Times in 266 Posts
    wie lautet die angabe deiner spez?
    mit readWord kannst nur mit ner schleife das problem lösen.
    und sonst musst halt ne endbedingung finden, an dem du erkennst, dass das der letzte String war.
    der letzte string unterscheidet sich sicher von den vorhergehenden. sei es durch länge, oder einer bestimmten zeichenfolge etc.
    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.»


    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  3. #3

    Title
    Principal
    Join Date
    Mar 2002
    Posts
    32
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Simulation eines Viruses

    die eingabe wird mit = beendet

    1(2,3) 2(1) 3(2,1) [2,3] {1} =

    stellt drei rechner dar
    in [] stehen die rechner die nich anfällig für den Virus sind und in {}steht der rechner bei dem der Virus startet

  4. #4

    Title
    Principal
    Join Date
    Mar 2002
    Posts
    32
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Fehler
    in [] stehen die computer die den Virus weitersenden

  5. #5
    DoomedOne
    naja das heißt doch nur das du das readWord() in eine schleife baust die so lange läuft bis ein "=" eingegeben wurde.
    zb so
    while(true) {
    String s = EprogIO.readWord();
    if (s.equals("="))
    break;

    ...do stuff
    }

  6. #6

    Title
    Principal
    Join Date
    Mar 2002
    Posts
    32
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Es funktioniert nicht
    jetzt schreibt es mir dann nur das = hin wenn ich den String ausgeben lasse

  7. #7

    Title
    Veteran
    Join Date
    May 2002
    Posts
    8
    Thanks
    0
    Thanked 0 Times in 0 Posts
    So kann es auch nicht funktionieren, das Programm bei jedem durchlauf die Variable s "überschreibt".

    ich würd einfach mit nem Array oder StringBuffer lösen:

    StringBuffer s = new StringBuffer("");

    while(true)
    {
    String a = eprog.EprogIO.readWord();
    if (a.equals("="))
    break;
    else
    s.append(a).append(" ");
    }


    Dann hast du die ganze Eingabe in s mit Leerzeichen getrennt. Jetzt kannst du es einfach mit einer for schleife zerlegen.

    int anzahl = 0;
    for(int i = 0; i < s.length(); i++)
    {
    if(s.charAt(i) == ' ')
    anzahl++;
    }

    String[] myString = new String[anzahl];
    int j = 0; int limit = 0;

    for(int i = 0; i < s.length(); i++)
    {
    if(s.charAt(i) == ' ')
    {
    myString[j] = s.substring(limit,i);
    limit = i + 1;
    j++;
    }
    }


    so müsste es eigentlich klappen ...... glaub aber das geht besser.

    Mfg
    "Lange Haare, Stinken, Haschisch, politische Agitation und gleichzeitig schulische Erfolge. Ich hatte nicht vor mir von irgendjemanden noch einmal etwas sagen zu lassen. Ich tat nur mehr das was ich wollte - und ich wollte gescheit werden. Vielleicht Pilot werden oder Philosoph oder Schriftsteller." (<-- Josef Haslinger)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •