# Wenn Zahlen 0 und 1 enthalten, dann die Zahl ausdrucken...



## kognitio (15. Feb 2004)

Hallo,
ich bin ein Newbi und Java und habe hier ein Programm, das nicht funktioniert, ich möchte, alle Zahlen, die 0 und 1 enthalten ausdrucken lassen, geht aber nicht...

```
import java.io.*;
import java.lang.*;
import java.util.*;

public class zahlen
{
     public static void main(String[] args)
	{
		for (int zahl = 0; zahl < 1000; zahl ++)
		if (zahl.contains (int 1, int 0) {
	System.out.println(zahl);
		}
	}
	}
```

bei mir kommen dann diese Fehlermeldungen:

```
zahlen.java:10: '.class' expected
                if (zahl.contains (int 1, int 0) {
                                       ^
zahlen.java:12: ')' expected
                }
                 ^
zahlen.java:13: illegal start of expression
        }
        ^
zahlen.java:10: unexpected type
required: value
found   : class
                if (zahl.contains (int 1, int 0) {
                                   ^
zahlen.java:10: int cannot be dereferenced
                if (zahl.contains (int 1, int 0) {
```


----------



## bo (15. Feb 2004)

hi 

probiers mit 


```
...
if ( zahl == 0 || zahl == 1 )
{
  ...
}
...
```


----------



## bygones (16. Feb 2004)

bo hat recht - das was du geschrieben hast ist keine Java Syntax !!



> if (zahl.contains (int 1, int 0) {



zahl ist ein int - also ein primitiver Datentyp, daher kennt er keine Operationen. Weiterhin musst du bei 1 bzw. 0 nicht angeben, dass es ints sind - das versteht Java automatisch.....


----------



## kognitio (16. Feb 2004)

das dachte ich mir, aber in der API steht:

```
contains

public boolean contains(int x,
                        int y)
```

und da dachte ich mir, vielleicht geht das nicht nur bei Koordinatensystemen, war wahrscheins blöd...
Denn mit der Hilfe von Bo, kann ich ja weiterhin nur die Zahlen eins und null ausgebenen, ich möchte aber ein app, dass mir alle zahlen ausspuckt, in dennen 1 und 0 vorkommen, und nur die...
Wenn mir da noch jemand heöfen könnte???
Viele Dank...


----------



## bygones (16. Feb 2004)

die Frage ist wo in der API steht das - wahrscheinlich bei irgendwelchen Graphic objekten (Rectangle / Point / Polygon) oder so....

allgemein: es steht zwar contains(int i, int y) so schaut aber nur die methoden definition aus ! Der Aufruf erfolgt ohne angabe des Datentyps (also contains(1,0)) z.b.

Zu deinem Problem:

Momentan fällt mir nichts besseres ein, als die Zahl in einen String zu verwandeln und dann mit indexOf() zu testen ob deine gewünschte Zahl drin ist


```
String s;
for(int i = 0; i < 1000; i++) {
  s = Integer(i).toString;
  if(s.indexOf("1") != -1 || s.indexOf("0" != -1)) {
    System.out.println("GEFUNDEN!");
  }
}
```

Das ist aber eher ein Hack - geht bestimmt auch besser, sollte aber funktionieren


----------



## kognitio (16. Feb 2004)

danke für die schnelle Hilfe deatbyaclown.... aber ich blicks immer noch nicht. Aus irgendwelchen Gründen, kann er jetzt Integer nicht richtig verstehen:


```
zahlen.java:12: cannot resolve symbol
symbol  : method Integer (int)
location: class zahlen
                        s = Integer(i).toString; 
                            ^
zahlen.java:13: operator != cannot be applied to java.lang.String,int
                        if(s.indexOf("1") != -1 || s.indexOf("0" != -1)) { 
                                                                 ^
zahlen.java:13: operator || cannot be applied to boolean,int
                        if(s.indexOf("1") != -1 || s.indexOf("0" != -1)) { 
                                                ^
3 errors
```

ich glaube, ich muss mich mal richtig mit den Basics beschäftigen, da ich bei so was immer im Wald stehe. Ich denke dann, dass ich vielleicht etwas nicht importiert habe, aber müsste ich in dem Fall haben, da Integer zu java.lang*; gehört. Viele Dank trotzdem für die Hilfe... and best wishes


----------



## bygones (16. Feb 2004)

waren meiner Fehler:

```
String s; 
for(int i = 0; i < 1000; i++) { 
  s = new Integer(i).toString; 
  if(s.indexOf("1") != -1 || s.indexOf("0") != -1) { 
    System.out.println("GEFUNDEN!"); 
  } 
}
```

du erzeugst dir ein temporäres IntegerObjekt und machst daraus ein String.
Mit indexOf testest du ob der angegebene String in s vorhanden ist - wenn nicht wird -1 zurückgegeben (gibt dir nämlich den index an dem der String auftaucht zurück)....


----------



## kognitio (16. Feb 2004)

leider immer noch nicht, jetzt kann er toString nicht lesen und ich weiß wieder nicht warum????

```
import java.io.*;
import java.lang.*;
import java.util.*;

public class zahlen
{
     public static void main(String[] args)
	{
	String s; 
		for(int i = 0; i < 1000; i++) 
		{ 
		s = new Integer(i).toString; 
			if(s.indexOf("1") != -1 || s.indexOf("0") != -1) 
			{ 
		System.out.println("GEFUNDEN!"); 
			} 
		}
	}
}
```

und hier die Fehlermeldung...

```
zahlen.java:12: cannot resolve symbol
symbol  : variable toString 
location: class java.lang.Integer
                s = new Integer(i).toString; 
                    ^
1 error
```

Wenn Du mir erklären könntest, wobei hier das Problem liegr, wäre ich Dir (deathbyaclown) dankbar...


----------



## bygones (16. Feb 2004)

ich hätte gestern doch nicht so spät ins bett gehen sollen  :roll: 

toString ist natürlich eine Methode - muss also toString() heißen !!

PS: Die API hilft in solchen Sachen auch immer weiter  :wink:


----------



## kognitio (16. Feb 2004)

super, funktioniert... vielen herzlichen Dank...


----------

