Position der ersten Stelle von Zahlenreihe in 2D-Array

cartilage

Grünschnabel
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.

Java:
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.
 
Hallo,
ich habe mal versucht deinen Code ein wenig anders zu formulieren. Eventuell geht es so?!:
Java:
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 ^^):
Java:
// 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();
}
 
Zuletzt bearbeitet:
Ja super danke, mit dem ersten Vorschlag hat es bereits funktioniert. Und so viel einfacher als mein Code.

Besten Dank******
 
Zurück