tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
171
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    cartilage cartilage ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    5
    Hallo,

    ich würde gerne in einem Array die Position ausgeben, an der zum ersten mal eine bestimmte Anzahl an Nullen auftaucht.
    Die Position durch meinen Code stimmt allerdings nicht immer. Hat jemand vll eine Idee woran es liegen könnte, bzw wie diese Position einfacher ermittelt werden kann?

    Ziel des Codes ist es, für jedes Element im Array zu prüfen ob die jeweils nachfolgenden Stellen eine Null beinhalten. Wenn ja soll die Position in eine Variable gesetzt werden.

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    for(int x=aktuelleposition; x<tabelle.length[0]-aktuelleposition; x++){
            for(int p=x; p<anzahldernullen+x; p++){ 
                if(tabelle[zeile][p]==0){
                        freizaehler++;
                    abdaisfrei++;
                }
                else{
                    freizaehler=0;
                    break;
                }
                if(freizaehler==anzahldernullen){
                    break;
                }
            }
            cacheeins=abdaisfrei;
    }

    Gruß C.
     

  2. #2
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Hallo,
    ich habe mal versucht deinen Code ein wenig anders zu formulieren. Eventuell geht es so?!:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    freizaehler = 0;
    abdakoenntefreisein = aktuelleposition;
    for(int x=aktuelleposition; x<tabelle[zeile].length; x++)
    {
        if(tabelle[zeile][x]==0)
        {
            freizaehler++;
        }
        else
        {
            freizaehler = 0;
            abdakoenntefreisein = x + 1;
        }
        if(freizaehler == anzahldernullen)
        {
            abdaistfrei = abdakoenntefreisein;
        }
    }

    Edit ein alternativer Lösungsvorschlag könnte eventuell so aussehen (was vermutlich ein wenig zu weit geht ):
    Code java:
    1
    2
    3
    4
    5
    6
    7
    
    // zeilenstring : String-Darstellung der kompletten Zeile
    Pattern p = Pattern.compile("(?<=\\d{" + aktuelleposition + ",})0{" + anzahldernullen + "}");
    Matcher m = p.matcher(zeilenstring);
    if(m.find())
    {
        abdaistfrei = m.start();
    }
    Geändert von HonniCilest (09.08.11 um 14:47 Uhr)
     
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  3. #3
    cartilage cartilage ist offline Rookie
    Registriert seit
    Aug 2011
    Beiträge
    5
    Ja super danke, mit dem ersten Vorschlag hat es bereits funktioniert. Und so viel einfacher als mein Code.

    Besten Dank******
     

Ähnliche Themen

  1. Array sortieren nach der x-ten Stelle
    Von Dunas im Forum Java
    Antworten: 3
    Letzter Beitrag: 21.03.07, 22:31
  2. Zahlenreihe
    Von Digg-R- im Forum Let's Quiz!
    Antworten: 49
    Letzter Beitrag: 23.12.05, 22:51
  3. Antworten: 3
    Letzter Beitrag: 07.07.05, 17:50
  4. Antworten: 19
    Letzter Beitrag: 16.11.04, 17:46
  5. Antworten: 10
    Letzter Beitrag: 10.07.02, 19:58

Stichworte