# Typanpassung



## MeisterQ (19. Nov 2010)

Ich bendanke mich schonmal für die Hilfe!

Es geht darum:


```
class Versuch2a { 
  static public void main(String [] args) { 
    int i1=50; 
    int i2=70; 
    int i3=111222333; 
    char c1='e'; 
    char c2='K'; 
    char c3; 
    String s1="HELLO"; 
    String s2=" WORLD"; 
    c3=(char)i3; 
    i3=(int)c3; 
    System.out.println(i1+i2); 
    System.out.println((char)(i1+i2)+"\n"+(char)i1+(char)i2); 
    System.out.println((char)i1+i2+"\t"+(char)i2+i1+"\t"+((int)c1-i1)); 
    System.out.println((char)i2+i1+"\t"+(char)i1+i2+"\t"+((int)c1-i1)); 
    System.out.println(""+(char)i2+i1+"\t"+(char)i1+i2+"\t"+((int)c1-i2)); 
    System.out.println(c1+"t"+((int)c1)+i2+c2); 
    System.out.println(s1+s2); 
    System.out.println(i3); 
  } 
}
```
Folgende fragen ergeben sich bei mir:

1)Wieso wird hier ein x anstatt einer Zahl ausgegeben?
                                         x
System.out.println((char)(i1+i2)+"\n"+(char)i1+(char)i2); 

2) Warum wird hier am Anfang der Zeile eine Zahl (120) und kein Buchstabe ausgegeben und warum wird im mittleren Teil ein F50 ausgeben und keine Zahl?
                                 (120)                 ( F50)
System.out.println((char)i1+i2+"\t"+(char)i2+i1+"\t"+((int)c1-i1));

3) Bewirken die "" das am Anfang der Zeile ein F50 ausgegeben wird oder besser gesagt was bewirken die "" in dem Fall?
                             ?         
System.out.println(""+(char)i2+i1+"\t"+(char)i1+i2+"\t"+((int)c1-i2));

Ich würde mich freuen wenn ich schnelle Hilfe bekommen würde!

mfg


----------



## henpara (19. Nov 2010)

benutz mal bitte die java - tags, so kriegt man ja augenkrebs!


----------



## bone2 (19. Nov 2010)

```
class Versuch2a {
    static public void main(String [] args) {
        int i1=50;
        int i2=70;
        int i3=111222333;
        char c1='e';
        char c2='K';
        char c3;
        String s1="HELLO";
        String s2=" WORLD";
        c3=(char)i3;
        i3=(int)c3;
        System.out.println(i1+i2);
        System.out.println((char)(i1+i2)+"\n"+(char)i1+(char)i2);
        System.out.println((char)i1+i2+"\t"+(char)i2+i1+"\t"+((int)c1-i1));
        System.out.println((char)i2+i1+"\t"+(char)i1+i2+"\t"+((int)c1-i1));
        System.out.println(""+(char)i2+i1+"\t"+(char)i1+i2+"\t"+((int)c1-i2));
        System.out.println(c1+"t"+((int)c1)+i2+c2);
        System.out.println(s1+s2);
        System.out.println(i3);
    }
}
```


----------



## henpara (19. Nov 2010)

Die "" bewirken, daß das /n als String aufgefasst wird bzw. "" stehen im Java für Strings, bzw. markieren den Anfang und Ende eines Strings. 
das /n dürfte eig. nur ein "line.separator" sein, /t wahrscheinlich ein Tab. hat also nichts direkt inhaltlich mit der Ausgabe zu tun, sondern eben nur "mache neue Zeile" bzw. "mach Tab".

edit: "" am Anfang einer Zeile bewirken garnichts. Probier doch selber einfach mal:

```
System.out.println("" + 11);
```

ich denke der Code soll dir klarmachen, was passiert, wenn man Zahlen zu Chars castet.

(char)(i1+i2) = (char)(120)
(char)i1 + i2 = (char)(50) + 70 --- (char)(50) dürfte wohl für das F verantwortlich sein..

könntest du aber auch alles in 5min selber testen, wenn du dir ne kleine Klasse schreibst, wo in der mein einfach nur:

```
System.out.println((char)50);
System.out.println((char)120);
System.out.println((char)70);
```

etz reinschreibst...

manche Leute sind echt zu faul zum selberdenken/ausprobieren...


----------



## bone2 (19. Nov 2010)

ganz normal klammern auflösen
1) (char)(50+70) = (char)120 = x
 /n zeilenumbruch
(char)50 und (char)70 hintereinander

2) (char)i1+i2+"\t"+(char)i2+i1+"\t"+((int)c1-i1)
er geht von vorne nach hinten: (char)70 dann wird es mit 50 addiert (dazu wieder in eine zahl gewandelt), dann wird es zum string durch den eingefügten "\t" an den string wird (char)70 also F angehängt. dann wird 50 angehängt usw


----------



## MeisterQ (20. Nov 2010)

Danke schonmal, aber das hilft mir noch net ganz weiter das 50 und 70 eifach addiert werden ist klar, aber mir geht mir um die  zeilen 15 und 16 : System.out.println((char)i1+i2+"\t"+(char)i2+i1 und  System.out.println((char)i2+i1+"\t"+(char)i1+i2.  
Es stehen quasi 2x die gleichen sachen hintereinander in den jeweiligen zeilen, aber es werden verschiedene operationen durchgeführt. ich wollte wissen ob das (char) i1+i2 am anfang der zeile anders behandelt wird als das folgende 
(char) i2+i1 am anfang der zeile ergibt 120 das ist mir klar 50+70=120 aber darauf folgen steht in der gleichen zeile
(char)i2+i1 das wird ja dann nicht 70+50 gerechnet sondern man schaut für i2 ind die ASKII-Tabelle und und es is dann F+50. 
In zeile 16 ist ja auch erst 120 dann 270 (2+70). es geht mir darum warum werden die zahlen am anfang der zeile einfach addiert
(i1+i2) und danach nicht? das ist der knackpunkt. In zeile 17 ging es mir darum, ob er F50 und nicht 120 weil dort die "" am anfang stehen. Das "" für einen text stehen können den man einträgt ist mir klar aber sie scheinen in dem fall ja was zu bewirken.

Vielen dank schonmal für antworten mfg!


----------

