# char mit int vergleichen ?



## mrbela (22. Mrz 2007)

Servus!

Warum gibt er mir hier denn nein aus ??


```
public static void main(String[] args) {
     
        String blub = "1test";
        
        int i = 1;
        
        if(blub.charAt(0) == i) {
            System.out.println("ja!");
        } else {
            System.out.println("nein!");
        }
    }
```

ist ein char nicht automatisch ein int ?!?!? :/

danke für die hilfe!


----------



## André Uhres (22. Mrz 2007)

Das Zeichen '1' hat im Unicode-Zeichensatz den Wert 49.
Er gibt demnach nein aus, weil 49 nicht gleich 1 ist.
Meistens vergleicht man ein Zeichen jedoch nicht mit einem int sondern mit einem anderen Zeichen:

```
char c = '1';
if(c == '1'){..}
```
Ein solcher Code hat dann also mit int gar nix mehr zu tun.


----------



## Marcel_Handball (22. Mrz 2007)

demnach musst du einfach folgendes schreiben, wenn du einen Char mit einem Int vergleichen willst:

```
if( (blub.charAt(0) == 'i' )
```

Gruß Marcel


----------



## SlaterB (22. Mrz 2007)

aha, um einen Char mit einem Int zu vergleichen, muss man also einen Char mit einem Char vergleichen


----------



## thE_29 (22. Mrz 2007)

```
if( (blub.charAt(0) == (i + '0') )
```

So gehört das!

Du könntest auch statt '0'  48 hinschreiben


----------



## SlaterB (22. Mrz 2007)

(blub.charAt(0) == (i + '0'))
?


----------



## Gast (22. Mrz 2007)

thE_29 hat gesagt.:
			
		

> ```
> if( (blub.charAt(0) == (i - '0') )
> ```
> So gehört das!
> Du könntest auch statt '0'  48 hinschreiben


Ist doch kein Grund einen zu köpfen, macht man meist so: char aha = '1'; if(blub.charAt(0) == aha)
oder so: if(blub.charAt(0) == '1')


----------



## thE_29 (22. Mrz 2007)

Achja, ganz vertan


----------



## Guest (22. Mrz 2007)

thE_29 hat gesagt.:
			
		

> Achja, ganz vertan


Siehste.


----------



## thE_29 (22. Mrz 2007)

Ich meinte das eigentlich mit dem + und - und nicht deine Lösung!

Warum soll ich das so "umständlich" lösen, wenn ich i erhöhe...

Ich habe das sicher noch nie so gemacht, wenn ich das mit nem int vergleiche ^^


----------



## Gast (22. Mrz 2007)

Wer vergleicht schon Äpfel mit Birnen? Find ich ziemlich dümmlich.


----------



## thE_29 (22. Mrz 2007)

In diesem Bsp vielleicht, aber meistens kommen solche Bsp von daher da es ein Loop Counter ist!

Und wenn man weiß wie man was vergleichen kann, ist das sicher net dämlich ^^


----------



## Gast (22. Mrz 2007)

Ein Zeichen aus einem String mit einem Loopcounter zu vergleichen ist auch net viel gescheiter. Das macht man gewöhnlich über Integer.parseInt().


----------



## SlaterB (22. Mrz 2007)

na Integer.parseInt ist nun eine sehr aufwendige Operation,
wenn man dann einfach die chars vergleichen kann ist man glücklicher


----------



## Gast (22. Mrz 2007)

SlaterB hat gesagt.:
			
		

> na Integer.parseInt ist nun eine sehr aufwendige Operation,
> wenn man dann einfach die chars vergleichen kann ist man glücklicher


chars vergleichen ist ja auch in Ordnung, aber net char mit int, 
das is ja Äpfel und Birnen, ziemlich unglücklich!


----------



## thE_29 (22. Mrz 2007)

Genau ^^

Warum soll ich ne unnutze Methode aufrufen (was vielleicht noch Zeit braucht) oder gar noch ein char definieren wo ich den int Wert umwandle, wenn ich es gleich so abfragen kann 

Aber da könnten wir noch Tage lang drüber diskutieren ^^


----------



## Gast (22. Mrz 2007)

thE_29 hat gesagt.:
			
		

> ..wenn ich es gleich so abfragen kann..


Dann hau ich also der Birne den Kopf ab, dann schaut's aus wie der Apfel. Ist doch aber ziemlich bescheuert.


----------



## thE_29 (22. Mrz 2007)

Tjo und warum solls bescheuert sein wenns schneller ist?

Vieles was schneller geht, sieht "bescheuert" aus.. Es gibt auch zig Programmierturniere, wo man aus wenig KB Speicher ziemlich viel machen muss..

Da wird aus einer Birne ne Ananas und ne Banane wenn man sie braucht..

Solange man daneben ein Kommentar hinsetzt warum das so geht, bzw was das sein soll, damit es auch Leute kapieren die es nicht gleich begreifen (java Anfänger, den unter C macht man oft solche Schweinereien) dann wird das woll reichen ^^

Aber sag mir nochmal warum es bescheuert sein soll?! Ich tue damit keinem weh, brauche keine unnötige Operation aufrufen und nicht noch eine weitere Variable deklarieren..

Möchte mal wissen welche von den 2 Lösungen dann eher bescheuert ist.. (und wenn du noch einmal damit kommst: es ist bescheuert oder dümmlich ohne irgendeine Begründung zu haben, schließe ich den ganzen Thread, den schön langsam geht mir so eine "tiefe" Argumentation von dir auf den Nerv ^^)


----------



## SlaterB (22. Mrz 2007)

zumal ja Integer.parseInt intern das gleiche macht..
da wird nicht gezaubert sondern auch Strings in chars zerlegt und diese umgerechnet,

das ganze wird durch substring und alles drumherum nur aufwendiger, es kommt das gleiche raus,

sich den ASCII-Wert eines chars anzuschauen ist doch nichts unnatürliches?
was soll man sonst mit einen String machen..


----------



## Gast (22. Mrz 2007)

thE_29 hat gesagt.:
			
		

> ..Möchte mal wissen welche von den 2 Lösungen dann eher bescheuert ist..


Mit Sicherheit nicht die, die aus Birnen Bananen macht, oder sowas, 
und das dann noch im Anfängerform, ich würde mich schämen.



			
				thE_29 hat gesagt.:
			
		

> (und wenn du noch einmal damit kommst: es ist bescheuert oder dümmlich ohne irgendeine Begründung zu haben, schließe ich den ganzen Thread, den schön langsam geht mir so eine "tiefe" Argumentation von dir auf den Nerv ^^)


Ja, das fällt euch Mods immer noch ein, wenn euch die Argumente ausgehen.
Nur zu, dann weiss wenigstens jeder, wo er mit euch dran ist.



			
				SlaterB hat gesagt.:
			
		

> zumal ja Integer.parseInt intern das gleiche macht..


Das ist vernünftig. Gut, dann nehmen wir das Integer.parseInt.


----------



## thE_29 (22. Mrz 2007)

Du hast die ganze Zeit keine Argumente gebracht ^^ 
Schreibst ja nur immer "das ist dümmlich" und bescheuert ohne etwas besseres zu erwähnen ^^

Schon mal in die Methode Integer.parseInt geschaut?

Erstens arbeitet der genauso mit charAt und wandelt es so zurück und 2tens macht der zig Überprüfungen was das ganze sicher net beschleunigt!

Aber hey, wenigstens hast dann eine langsame Birne damit DU es auch kapierst, bevor man einen schnellen Apfel draus machst..

So meine Argumente sind also: Es ist schneller und Integer.parseInt sind das gleiche!

Wo sind deine, außer: es ist dümmlich und bescheuert ...


----------



## André Uhres (22. Mrz 2007)

thE_29 hat gesagt.:
			
		

> ..
> So meine Argumente sind also: Es ist schneller und Integer.parseInt sind das gleiche!
> 
> Wo sind deine, außer: es ist dümmlich und bescheuert ...


Also gut, ich will's net zu weit treiben, dann lass ich mal die Katze aus'm Sack: der Gast bin ich.
Wollte nur mal Life erleben, wie ihr mit sowas umgeht. 
Ich muss sagen, ihr habt euch gut geschlagen! (ausser, daß du meinen ersten Beitrag kurzerhand gelöscht hast  :roll:  )
Und ich hab mich köstlich amüsiert  :lol:


----------



## thE_29 (22. Mrz 2007)

Das du der Gast war/bist war mir eigentlich schon lange klar ^^

Deswegen auch die Frage, ob du in einem Büro sitzt, weil ich ja nur die IP sehe und maybe war es ein böser Kollege! (bei Beschuldigungen bin ich ja net vorschnell )

Und ich habe nur einen Post gelöscht (auf der vorigen Seite) der für mich einfach nichts zum Thema/Thread beigetragen hat!

Also das nächste mal die IP net vergessen ^^


PS.: Beim Nächsten Post hätte ich es aber erwähnt das du mich auch persönlich "angreifen" kannst, weil dein Schreibstil hat dich auch noch verraten  (und ich war schon am überlegen ob ich dir ne PN schreibe, ob das e nicht du bist :bae


----------



## André Uhres (22. Mrz 2007)

Ja, ich hätte es über einen zweiten PC machen sollen, so'n Mist.
Und den Schreibstil ändern, ja. Vielleicht mach ich das dann später nochmal richtig.
War aber trotzdem köstlich!  :lol:


----------

