Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Frage zu Java

  1. #1
    Michelangelo Virus Avatar von Kaho
    Registriert seit
    05.07.2009
    Beiträge
    284

    Standard Frage zu Java

    hey hab folgendes relativ einfaches problem

    und zwar hab ich aneinader gereihte zahlen
    (sowas wie 20-5-6-7)
    der "-" dient als trennzeichen zwischen den zahlen.

    das ganze wird einfach in nen string eingelesen (via bufferedReader)

    die frage für mich ist:
    wie kann ich den großen string in mehrer kleinere verwandlen?
    sprich das mit die 20 in die variable a und die 5 in die variable b usw. gespeichert wird?

    ich selbst bin relativ neu in java, daher kenn ich dafür keine passenden befehle, habe bisher weder mit arrays noch richtig mit schleifen gearbeitet, daher hab ich hier kA wie man das machen soll.

    wenn jmd. was weiß, dann bitte her mit dem wissen :-)

  2. #2
    Stanley Jobson Avatar von Bonkers
    Registriert seit
    01.02.2010
    Beiträge
    735

    Blackberry: der eine typ ist danach gestorben
    Bonkers: Echt?
    Blackberry: jep

  3. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    Kaho (11.04.2012)

  4. #3
    Michelangelo Virus Avatar von Kaho
    Registriert seit
    05.07.2009
    Beiträge
    284

    Standard AW: Frage zu Java

    so ein weiteres problem...

    Code:
    import java.io.*;
    import java.util.*;
    
    public class Raetsel
    {
        public static void main(String argv[]) throws Exception
        {
            String str;
            int[] b = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
            int i=1;
            String[] c = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "};
            String[] a = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "};
            
        
            BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
            
            String[] alphabet = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
            
            System.out.print("Texteingabe: ");
            str = input.readLine();
            str = "--20--8--5--26--19--3--5--14--5--";
    
        
            java.util.Arrays.toString(a=str.split("--"));
            
            while (a[i]!=" ")
            {
            if (a[i]!="--")
            {
                b[i]=Integer.parseInt(a[i])-1;
                c[i]= alphabet[b[i]];
                System.out.println(c[i]);           
            }
            else
            {
                break;
            }
            i++;
            }
    
            System.out.println();
            System.out.println("Programmende Raetsel"); 
        }
    }
    was soll das programm machen:

    man macht eine tastatureigabe (so wie die, die im str gespeichert wird)
    und das programm wandelt die zahlen in buchstaben um.

    das array von string c und c musste ich definieren sonst meckert mir der compiler rum, array von string a hab ich definiert, um die while-schleife abbrechen zu können.

    leider hab ich keine ahnung von schleifen, jedoch arbeitet das programm ganz normal, nur am ende kommt immer ein:
    ArrayIndexOutOfBound

    langsam blick ich da einfach nicht mehr durch...
    außerdem ist es viel zu spät..

    wenn jmd versteht was ich meine und zeit/lust hat, dann kann er mal drübergucken...

  5. #4
    Master of Porn Avatar von sp1nny
    Registriert seit
    28.05.2007
    Beiträge
    530

    Standard AW: Frage zu Java

    Ohne mir das Programm jetzt genauer angeguckt zu haben, aber eine ArrayIndexOutOfBound - Exception tritt immer dann auf, wenn du versuchst auf ein Element eines Arrays zuzugreifen, dass nicht existiert.

    Der Fehler liegt hier ->

    Code:
    while (a[i]!=" "){
        //blub
        i++;
     }
    richtig wäre:

    Code:
            while (i < Array.getLength(a)){
                if (a[i]!="--"){
                    b[i]=Integer.parseInt(a[i])-1;
                    c[i]= alphabet[b[i]];
                    System.out.println(c[i]);           
                }else{
                    break;
                }
                i++;
            }
    mfg

  6. #5
    Michelangelo Virus Avatar von Kaho
    Registriert seit
    05.07.2009
    Beiträge
    284

    Standard AW: Frage zu Java

    hmm da sagt er mir jetzt, dass er Array nicht kennen würde...

    kenne den befehl nicht, daher weiß ich nicht, ob ich vllt noch mehr librarys reinpacken muss

    import java.io.*;
    import java.util.*;
    die sind bis jetzt drin

    edit: @ sp1nny so hatte ich das mit dem fehler auch verstanden.
    ich dachte das mein array a zu klein wäre, da er in a ja den string getrennt reinschreibt und dann unten die einzelnen teile durchgeht.
    I wird immer weiter erhöht und somit checkt er auch einen teil vom array, der vllt nicht existiert, daher hab ich ja das array a oben so griß gemacht (mit leerzeichen)
    und hab als bediengung für die while schleife gesagt, er soll aufhören, wenn ein leerzeichen im array steht, nur leider wills nicht so, wie ich das will :-)

    edit2: ok habs für java heißt der befelht dann "a.length" sprich: name_des_arrays.length

    aber danke für den tipp, fehler kommt nicht mehr...





    nächstes problem, jetzt waren ja nur zahlen im array, wenn ich jetzt noch sage, dass im array noch ein symbol auftacht, was ein leerzeichen sein soll, wie kann ich das abfangen?
    ich editier gleich mal meinen ansatz

    edit3:

    Code:
                        while (i < a.length)
            {
                if (a[i] == "/")
                {
                System.out.print(" ");
                }
                
                else if (a[i]!="--")
                {
                    b[i]=Integer.parseInt(a[i])-1;
                    c[i]= alphabet[b[i]];
                    System.out.print(c[i]);           
                }        
    
                else
                {
                    break;
                }
                i++;
            }
    das ist mein ansatz.
    leider kommt, wenn ich jedoch ein "/" reinbauen will kommt folgender fehler:



    vllt kann mir ja jmd da weiterfelhen, ich tüftel selbst mal ein wenig rum

    edit 4:
    ok habs...

    if (a[i].equals("/"))

    muss ich nehmen, dann gehts auch ;-)

    ---------- Post added at 13:42 ---------- Previous post was at 12:51 ----------

    neuer post da es sonst unübersichtlich wird:

    Code:
    import java.io.*;
    import java.util.*;
    
    public class Raetsel
    {
        public static void main(String argv[]) throws Exception
        {
            String str;
            int[] b = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
            int i=1;
            String[] c = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "};
            String[] a = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "};    
            
        
            BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
            
            String[] alphabet = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
            
            System.out.print("Texteingabe: ");
            str = input.readLine();
        
            java.util.Arrays.toString(a=str.split("--"));
            
            
            while (i < a.length)
            {
                if (a[i].equals("//"))
                {
                System.out.print("");
                }        
                else if (a[i].equals("/"))
                {
                System.out.print(" ");
                }        
                else if (a[i]!="--" && (a[i] != "/"))
                {
                    b[i]=Integer.parseInt(a[i])-1;
                    c[i]= alphabet[b[i]];
                    System.out.print(c[i]);           
                }
                else
                {
                    break;
                }
                i++;
            }
    
            System.out.println();
            System.out.print("Programmende Raetsel"); 
        }
    }
    zum üben :-)

    das einzigste was mich noch stört, ist dass ich a,b und c schon vorher füllen muss...
    Geändert von Kaho (11.04.2012 um 13:32 Uhr)

  7. #6
    Support-Hure Avatar von sn0w
    Registriert seit
    18.09.2007
    Beiträge
    1.810

    Standard AW: Frage zu Java

    Tu dir und allen anderen auch einen Gefallen und schau dir bitte vorher die Sprache an. Dass du das String Array vorher füllen musst, ist natürlich Schwachsinn, wenn du das Array richtig initialisierst...

    Boardregeln | SuFu | Blackmarket | PM

    Fragezeichen und Ausrufezeichen sind keine Rudeltiere!
    Bin nicht zuständig für Treuhand.


  8. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    Barny (12.04.2012), Bonkers (11.04.2012)

  9. #7
    Stanley Jobson Avatar von Bonkers
    Registriert seit
    01.02.2010
    Beiträge
    735

    Standard AW: Frage zu Java

    Zitat Zitat von sn0w Beitrag anzeigen
    Dass du das String Array vorher füllen musst, ist natürlich Schwachsinn, wenn du das Array richtig initialisierst...
    http://www.programmersbase.net/Conte...Java/Array.htm

    Blackberry: der eine typ ist danach gestorben
    Bonkers: Echt?
    Blackberry: jep

  10. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    Kaho (11.04.2012)

  11. #8
    Michelangelo Virus Avatar von Kaho
    Registriert seit
    05.07.2009
    Beiträge
    284

    Standard AW: Frage zu Java

    wie gesagt bin ich noch blutiger anfänger und habe bisher noch nie mit arrays gearbeitet.

    int[] array1 = new int[10];
    was mach ich den, wenn ich vorher noch nicht weiß, wie groß das array später werden wird?

    edit: ok das mit dem initialisieren hab ich hinbekommen, aber die frage von oben bleibt
    Geändert von Kaho (11.04.2012 um 20:51 Uhr)

  12. #9
    Support-Hure Avatar von sn0w
    Registriert seit
    18.09.2007
    Beiträge
    1.810

    Boardregeln | SuFu | Blackmarket | PM

    Fragezeichen und Ausrufezeichen sind keine Rudeltiere!
    Bin nicht zuständig für Treuhand.


  13. #10
    Michelangelo Virus Avatar von Kaho
    Registriert seit
    05.07.2009
    Beiträge
    284

    Standard AW: Frage zu Java

    ok so wie ich das verstehe muss ich ne größe angeben...

    ich könnte maximal ein neues array ins programm einbeziehen, welches dann größer wäre als mein altes, welches das alte aufnimmt und dann ja noch platz übrig hat...

    naja ich machs einfach etwas größer und bin fertig mit der sache...
    ist ja eh nur spielerei, aber danke für den link

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Java zu *.exe
    Von haggys22 im Forum Java
    Antworten: 3
    Letzter Beitrag: 14.12.2010, 23:12
  2. Java Applet Frage
    Von T1M3Z im Forum Java
    Antworten: 2
    Letzter Beitrag: 23.06.2010, 20:00
  3. frage zum einbinden von Java und Stylesheets
    Von Mac_Hack im Forum (X)HTML & CSS
    Antworten: 5
    Letzter Beitrag: 22.10.2008, 09:14
  4. Java
    Von Terror Hase im Forum Sonstiges
    Antworten: 8
    Letzter Beitrag: 07.09.2007, 16:32

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •