# int in String umwandeln



## bandy (5. Jun 2010)

Hallo,
bin wieder da 

mir gelingt es nicht ein Problem zu loesen.

Habe 2 Schleifen die int-Zahlen ausspucken, diese werden in der Konsole ausgegeben. Bevor diese ausgegeben werden, will ich diese in einer if-Abfrage in String konvertieren, aber das gelingt nicht

Gegoogelt habe ich nur eine Methode die etwas bewirken konnte. String.valueOf() komme aber damit nicht klar.


```
for (int i = 0; i <= 4; i++)
	
		for ( int i2 = 0; i2 <=4; i2++)
			
			if(i2==0) i2=String.valueOf("a");
			else
			if(i2==1) .........
			else
			if(i2==2) ......
			else
			if(i2==3) 
			else
		System.out.println(i+""+i2);
	}
```

:bahnhof:


----------



## Marco13 (5. Jun 2010)

Typ-Pingpong...

int einInt = 123;
String einString = String.valueOf(einInt);
int nochEinInt = Integer.valueOf(einString);


----------



## agentone (5. Jun 2010)

Deine Fragen waren ziemlich konfus, genauso wie der Quelltext. (Bitte 
	
	
	
	





```
anstatt [CODE] verwenden!)

[code=Java]i2=String.valueOf("a");
```
Das kann garnicht funktionieren, da i2 vom Typ int, aber valueOf einen String zuückgibt. Was wolltest du eigentlich erreichen? (Du setzt übrigens den Schleifen-Index, soetwas sollte man nur tun, wenn man weiß was man tut.)

von int zu String konvertieren kannst du z. B. so:

```
int zahl=3; //testzahl
String str=String.valueOf(zahl); //str enthält dann den String "3"
String str2=""+zahl; //2. Möglichkeit: str2 enthält dann genauso "3"
```

Am besten ist, du erklärst einfach dein Problem mit kurzen, verständlichen Sätzen. Warum brauchst du die for-Schliefen? Was soll bei den if-Konstrukten passieren? Warum willst du int in String umwandeln? Was willst du ausgeben?


----------



## bandy (5. Jun 2010)

Marco13 hat gesagt.:


> Typ-Pingpong...
> 
> int einInt = 123;
> String einString = String.valueOf(einInt);
> int nochEinInt = Integer.valueOf(einString);



und dann kommt NumberFormatException





------------------------------------------------
Ein Bild sagt mehr als tausend Worte.....
gescheiter Quelcode auch......


----------



## JanHH (5. Jun 2010)

Irgendwie ist völlig unklar was Du eigentlich machen willst. Wenn Du statt einer "1" ein "a" ausgeben willst, halt zu jeder Zahl 97 dazuzählen (1+96 = 97 = ascii-Code von "a") und als char ausgeben..

char c=(char)(i+96);


----------



## agentone (5. Jun 2010)

> und dann kommt NumberFormatException



Wie, was wo? Bei welchem Code kommt dieser Fehler? Kannst du den mal bitte hier reinstellen!
Beim umwandeln eines int in ein String kann es keine NFException geben!

Und beim Code von Marco13 gibt es genauso keine Exceptions.

Wenn du natürlich 
	
	
	
	





```
Integer.valueOf("a")
```
 geschrieben hast, ist das kein Wunder...


----------



## Marco13 (5. Jun 2010)

*dämmer*... Falls du sowas hast wie
int a = 123;
dann wird 
String s = String.valueOf("a");
nicht funktionieren - das muss schon
String s = String.valueOf(a);
sein... ???:L


----------



## Empire Phoenix (5. Jun 2010)

int bla = 798;
String mystring = ""+bla;


----------



## bandy (5. Jun 2010)

JanHH hat gesagt.:


> Irgendwie ist völlig unklar was Du eigentlich machen willst. Wenn Du statt einer "1" ein "a" ausgeben willst, halt zu jeder Zahl 97 dazuzählen (1+96 = 97 = ascii-Code von "a") und als char ausgeben..
> 
> char c=(char)(i+96);



Schau mal hier bitte was die Schleifen in der Konsole ausgeben:


```
0   i <== *** ==> i2   0
0   i <== *** ==> i2   1
0   i <== *** ==> i2   2
0   i <== *** ==> i2   3
0   i <== *** ==> i2   4
1   i <== *** ==> i2   0
1   i <== *** ==> i2   1
1   i <== *** ==> i2   2
1   i <== *** ==> i2   3
1   i <== *** ==> i2   4
2   i <== *** ==> i2   0
2   i <== *** ==> i2   1
2   i <== *** ==> i2   2
2   i <== *** ==> i2   3
2   i <== *** ==> i2   4
3   i <== *** ==> i2   0
3   i <== *** ==> i2   1
3   i <== *** ==> i2   2
3   i <== *** ==> i2   3
3   i <== *** ==> i2   4
4   i <== *** ==> i2   0
4   i <== *** ==> i2   1
4   i <== *** ==> i2   2
4   i <== *** ==> i2   3
4   i <== *** ==> i2   4
```

Also links sehen wir die Werte von Schleife i und rechts von i2.
Was ich erreichen will, ist z.B. die Werte von i oder i2 vor der Ausgabe mit System.out.println("");
in Zeichenkette konvertieren. Wenn ich z.B. bei i2 beim Wert 2 es ausgeschrieben haben moechte, also Zeichenkette "zwei".
Das ganze soll dann in der Konsole so aussehen:


```
0   i <== *** ==> i2   0
0   i <== *** ==> i2   1
0   i <== *** ==> i2   [COLOR="Red"]zwei[/COLOR]
0   i <== *** ==> i2   3
0   i <== *** ==> i2   4
1   i <== *** ==> i2   0
1   i <== *** ==> i2   1
1   i <== *** ==> i2   [COLOR="Red"]zwei[/COLOR]
1   i <== *** ==> i2   3
1   i <== *** ==> i2   4
2   i <== *** ==> i2   0
2   i <== *** ==> i2   1
2   i <== *** ==> i2   [COLOR="Red"]zwei[/COLOR]
2   i <== *** ==> i2   3
2   i <== *** ==> i2   4
3   i <== *** ==> i2   0
3   i <== *** ==> i2   1
3   i <== *** ==> i2   [COLOR="Red"]zwei[/COLOR]
3   i <== *** ==> i2   3
3   i <== *** ==> i2   4
4   i <== *** ==> i2   0
4   i <== *** ==> i2   1
4   i <== *** ==> i2   [COLOR="Red"]zwei[/COLOR]
4   i <== *** ==> i2   3
4   i <== *** ==> i2   4
```

Hierfuer will ich den Wert von i2 wenn es 2 hat in eine Zeichenkette umwandeln. Ansonsten soll i2 deren schoene int-Zahlen weiterhin behalten, damit der Rest wie gewuenscht ausgegeben werden kann. Es soll also nicht i2 komplett in String umgewandelt werden, sondern nur zur Laufzeit, wenn es bei 2 ist.

Dies versuchte ich mit der if-Abfrage zu loesen und habe hierfuer den Quelltext von Marco13 genohmen:

[JAVA=0]
String s="zwei";

	for (int i = 0; i <= 4; i++)

		for ( int i2 = 0; i2 <=4; i2++)

			if(i2==0)  s=String.valueOf(i2);
			else
		System.out.println(i+"   i <== *** ==> i2   "+i2);
[/code]

So ist es doch anzuwenden bei diesem Beispiel, oder?:bahnhof:

Aber Ergebnis ist selbe!

Wenn ich es in char ausgeben will anstatt in String und damit das ganze dann so aussieht:


```
0   i <== *** ==> i2   0
0   i <== *** ==> i2   1
0   i <== *** ==> i2   [COLOR="Red"]a[/COLOR]
0   i <== *** ==> i2   3
0   i <== *** ==> i2   4
1   i <== *** ==> i2   0
1   i <== *** ==> i2   1
1   i <== *** ==> i2   [COLOR="Red"]a[/COLOR]
1   i <== *** ==> i2   3
1   i <== *** ==> i2   4
2   i <== *** ==> i2   0
2   i <== *** ==> i2   1
2   i <== *** ==> i2   [COLOR="Red"]a[/COLOR]
2   i <== *** ==> i2   3
2   i <== *** ==> i2   4
3   i <== *** ==> i2   0
3   i <== *** ==> i2   1
3   i <== *** ==> i2   [COLOR="Red"]a[/COLOR]
3   i <== *** ==> i2   3
3   i <== *** ==> i2   4
4   i <== *** ==> i2   0
4   i <== *** ==> i2   1
4   i <== *** ==> i2   [COLOR="Red"]a[/COLOR]
4   i <== *** ==> i2   3
4   i <== *** ==> i2   4
```

Scheitert der Versuch wenn ich dies so versuche:

[JAVA=0]
char c;

	for (int i = 0; i <= 4; i++)

		for ( int i2 = 0; i2 <=4; i2++)

			if(i2==0)  i2= c=(char)(i2+96);
			else
		System.out.println(i+"   i <== *** ==> i2   "+i2);
[/code]


----------



## Ruzmanz (5. Jun 2010)

Ich glaube er meint so was:
(Integer 5 zu String "fünf" ist nicht möglich in Java.)


```
public class Zahlen {
    public Zahlen() {
        for(int i = 0; i <= 4; i++) {
            for(int i2 = 0; i2 <= 4; i2++) {
                System.out.print("" + i + "   i <== *** ==> i2  ");
                switch(i2) {
                    case 0:
                        System.out.println("null");
                        break;
                    case 1:
                        System.out.println("eins");
                        break;
                    case 2:
                        System.out.println("zwei");
                        break;
                    case 3:
                        System.out.println("drei");
                        break;
                    case 4:
                        System.out.println("vier");
                        break;
                    default:
                        System.out.println("unbekannt");
                }
            }
        }
    }
}
```

Ausgabe:



> 0   i <== *** ==> i2  null
> 0   i <== *** ==> i2  eins
> 0   i <== *** ==> i2  zwei
> 0   i <== *** ==> i2  drei
> ...



Sry, mit if:



```
public class Zahlen {
    public Zahlen() {
        for(int i = 0; i <= 4; i++) {
            for(int i2 = 0; i2 <= 4; i2++) {
                System.out.print("" + i + "   i <== *** ==> i2  ");
                if(i2 == 0)
                        System.out.println("null");
                if(i2 == 1)
                        System.out.println("eins");
                if(i2 == 2)
                        System.out.println("zwei");
                if(i2 == 3)
                        System.out.println("drei");
                if(i2 == 4)
                        System.out.println("vier");
            }
        }
    }
}
```


----------



## Landei (5. Jun 2010)

Ruzmanz hat gesagt.:


> Integer 5 zu String "fünf" ist nicht möglich in Java.



Die ICU-Bibliothek von IBM kann das...


----------



## Java-Freak (5. Jun 2010)

Integer.toString(Integer bla);??


			
				Rumanz hat gesagt.:
			
		

> Ich glaube er meint so was:
> (Integer 5 zu String "fünf" ist nicht möglich in Java.)


und was hatter dann davon? 
also ich meine das bringt ihm eh nur was im deutschen sprachraum....


----------



## agentone (5. Jun 2010)

Kann es sein, dass sich die Aufgabenstellung jetzt ungefähr 10-mal verändert hat, weil der Threadstarter sich nicht vernünftig ausdrücken konnte?


----------



## Ruzmanz (5. Jun 2010)

> und was hatter dann davon?



Vielleicht soll er für die NASA in deutscher Sprache ein Raketenstartprogramm schreiben oder er ist einfach ein Java Einsteiger und versucht eine kleine Hausaufgabe zum laufen zu bringen.



> Die ICU-Bibliothek  von IBM kann das...



... nicht. Selbst IBM ist nicht so mächtig menschliche Assoziationen in ein Javaprogramm zu packen. Das war auf die Syntax von Java bezogen:

if(Stein > Schere)

Anfänger: Ein Stein ist ein Stein und der ist stärker wie eine Schere. Stein schlägt schere.
Programmierer: "Stein" und "Schere" sind wahrscheinlich Variablen vom Typ int. (Und sind komischer Weiße großgeschrieben.)

Genauso hat er WAHRSCHEINLICH, keine Garantie, das er es so gemeint hat, versucht eine 5 in eine "fünf" zu machen. Da 5 eine Zahl ist und "fünf" ein String.


----------



## Java-Freak (5. Jun 2010)

Ruzmanz hat gesagt.:


> Vielleicht soll er für die NASA in deutscher Sprache ein Raketenstartprogramm schreiben


klar


----------



## Marco13 (5. Jun 2010)

Da hatte ich auch mal was geschrieben...

```
class NumText {

  public static void main(String args[]) {
    System.out.println("                  0: "+print(                  0L));
    System.out.println("                  1: "+print(                  1L));
    System.out.println("                 10: "+print(                 10L));
    System.out.println("                 15: "+print(                 15L));
    System.out.println("                 16: "+print(                 16L));
    System.out.println("                 20: "+print(                 20L));
    System.out.println("                 27: "+print(                 27L));
    System.out.println("                100: "+print(                100L));
    System.out.println("                111: "+print(                111L));
    System.out.println("                123: "+print(                123L));
    System.out.println("               1000: "+print(               1000L));
    System.out.println("               1002: "+print(               1002L));
    System.out.println("               4521: "+print(               4521L));
    System.out.println("              34567: "+print(              34567L));
    System.out.println("             230518: "+print(             230518L));
    System.out.println("            1000000: "+print(            1000000L));
    System.out.println("            2000000: "+print(            2000000L));
    System.out.println("            4234507: "+print(            4234507L));
    System.out.println("           11201514: "+print(           11201514L));
    System.out.println("          145234567: "+print(          145234567L));
    System.out.println("         1000000000: "+print(         1000000000L));
    System.out.println("         1101101101: "+print(         1101101101L));
    System.out.println("         6345562624: "+print(         6345562624L));
    System.out.println("9223372036854775807: "+print(9223372036854775807L));
  }

  private static String number[] = new String[]{
    "null","ein","zwei","drei","vier","fünf","sechs","sieben","acht","neun"
  };

  private static String tens[] = new String[]{
    "(nullzig)", "zehn", "zwanzig", "dreißig", "vierzig",
    "fünfzig", "sechzig", "siebzig", "achzig", "neunzig"
  };

  private static String order[] = new String[]{
    "","tausend","million","milliarde","billion","billiarde","trillion"
  };


  public static String print(long n) { return (n==0?"null":print(n,0)); }
  private static String print(long n, int k){//n!=0!
    String result="";                                 // result += :
    if (n%1000==0) return print(n/1000, k+1);
    int h=(int)((n%1000)/100);
    int t=(int)((n%100)/10);
    int o=(int)(n%10);
    if (h!=0) result+=(number[h]+"hundert");          // drei+hundert
    if (t!=0) {
      if (t==1) {
        switch (o) {
          case 0: result+="zehn";     break;
          case 1: result+="elf";      break;
          case 2: result+="zwölf";    break;
          case 6: result+="sechzehn"; break;
          case 7: result+="siebzehn"; break;
          case 8: result+="achzehn";  break;
          default: result+=(number[o]+"zehn"); break; // vier+zehn
        }
      }
      else if (o==0) result+=tens[t];                 // zwanzig
      else result+=(number[o]+"und"+tens[t]);         // acht+und+dreißig
    } else if (o!=0) result+=number[o];               // sieben
    if      (k<=1)         result+=    order[k];      // tausend
    else if (o==1 && t==0) result+="e"+order[k];      // einE   ...
    else if (k%2==0)       result+=    order[k]+"en"; // >=zwei ...illionEN
    else                   result+=    order[k]+"n";  // >=zwei ...illiardeN
    if (n/1000!=0) result=print(n/1000, k+1)+result;
    return result;
  }


}
```


----------



## Landei (5. Jun 2010)

Java-Freak hat gesagt.:


> Integer.toString(Integer bla);??
> 
> und was hatter dann davon?
> also ich meine das bringt ihm eh nur was im deutschen sprachraum....



ICU erlaubt natürlich Internationalisierung. Einige Sprachen sind schon dabei, aber man kann auch eigene "Regelsätze" dazuschreiben (hat meine Firma z.B. für Polnisch und Russisch gemacht, brauchen wir für Versanddokumente). Das Schöne ist, das man auch komplexere Bildungsregeln formulieren kann - manche Sprachen haben viel kompliziertere "verbale Zahlensysteme" als deutsch.


----------



## andiv (5. Jun 2010)

@Marco13: Müsste es nicht "Ach*t*zehn" statt "Achzehn" heißen?


----------



## agentone (5. Jun 2010)

@Marco13: Dein Programm ist nicht ganz fehlerfrei:

1:ein (s fehlt)
101: einhundertein (s fehlt an einer Stelle)
18: achzehn (t fehlt)
1000000: einemillion (sollte besser auseinander geschrieben werden, und Million groß)

Warum erwartet die Methode eigentlich ein long, und nicht zum Beispiel ein BigInteger oder einen String?

Du könntest das Programm auf Dezimalzahlen erweitern. Das ist zwar nicht sehr schwierig, vervollständigt aber das Programm.


----------



## Marco13 (5. Jun 2010)

Naja, das "achtzehn" ist ja eher ein Tippfehler  kann man ja leicht ändern.

Aber @agentone: Dort tut jetzt das Grammatik ins Spiel kommen   Dass bei "ein" kein 's' dahinter steht ist dahingehend Absicht, dass das Programm ursprünglich auf (Euro)Beträge abzielte, und 1€ eben "Ein Euro" ist und nicht "Eins Euro". Regeln zur getrennt Schreibung oder Zusammenschreibung könnte man noch einbauen, ganz grob:

```
class NumText1b {

  public static void main(String args[]) {
    System.out.println("                  0: "+print(                  0L));
    System.out.println("                  1: "+print(                  1L));
    System.out.println("                 10: "+print(                 10L));
    System.out.println("                 15: "+print(                 15L));
    System.out.println("                 16: "+print(                 16L));
    System.out.println("                 20: "+print(                 20L));
    System.out.println("                 27: "+print(                 27L));
    System.out.println("                100: "+print(                100L));
    System.out.println("                111: "+print(                111L));
    System.out.println("                123: "+print(                123L));
    System.out.println("               1000: "+print(               1000L));
    System.out.println("               1002: "+print(               1002L));
    System.out.println("               4521: "+print(               4521L));
    System.out.println("              34567: "+print(              34567L));
    System.out.println("             230518: "+print(             230518L));
    System.out.println("            1000000: "+print(            1000000L));
    System.out.println("            2000000: "+print(            2000000L));
    System.out.println("            4234507: "+print(            4234507L));
    System.out.println("           11201514: "+print(           11201514L));
    System.out.println("          145234567: "+print(          145234567L));
    System.out.println("         1000000000: "+print(         1000000000L));
    System.out.println("         1101101101: "+print(         1101101101L));
    System.out.println("         6345562624: "+print(         6345562624L));
    System.out.println("9223372036854775807: "+print(9223372036854775807L));
  }

  private static String number[] = new String[]{
    "null","ein","zwei","drei","vier","fünf","sechs","sieben","acht","neun"
  };

  private static String tens[] = new String[]{
    "(nullzig)", "zehn", "zwanzig", "dreißig", "vierzig",
    "fünfzig", "sechzig", "siebzig", "achzig", "neunzig"
  };

  private static String order[] = new String[]{
    "","tausend"," Million"," Milliarde"," Billion"," Milliarde"," Trillion"
  };


  public static String print(long n) { return (n==0?"null":print(n,0)); }
  private static String print(long n, int k){//n!=0!
    String result="";                                 // result += :
    if (n%1000==0) return print(n/1000, k+1);
    int h=(int)((n%1000)/100);
    int t=(int)((n%100)/10);
    int o=(int)(n%10);
    if (h!=0) result+=(number[h]+"hundert");          // drei+hundert
    if (t!=0) {
      if (t==1) {
        switch (o) {
          case 0: result+="zehn";     break;
          case 1: result+="elf";      break;
          case 2: result+="zwölf";    break;
          case 6: result+="sechzehn"; break;
          case 7: result+="siebzehn"; break;
          case 8: result+="achtzehn"; break;
          default: result+=(number[o]+"zehn"); break; // vier+zehn
        }
      }
      else if (o==0) result+=tens[t];                 // zwanzig
      else result+=(number[o]+"und"+tens[t]);         // acht+und+dreißig
    } else if (o!=0) result+=number[o];               // sieben
    if      (k<=1)         result+=    order[k]+" ";  // tausend
    else if (o==1 && t==0) result+="e"+order[k];      // einE   ...
    else if (k%2==0)       result+=    order[k]+"en "; // >=zwei ...illionEN
    else                   result+=    order[k]+"n "; // >=zwei ...illiardeN
    if (n/1000!=0) result=print(n/1000, k+1)+result;
    return result;
  }
}
```

Ob und nach welcher Rechtschreibung es nun "Vier Million Drei Tausend Zwei Hundert" oder "Viermillion dreitausend zweihundert" heißt, spielte aber für mich keine so große Rolle: _Eigentlich_ hatte ich das Programm ohnhin nur geschrieben, um so ein Zahlen-Zu-Text-Programm (in seiner einfachsten Form, die eben alles als einem Wort ausgibt) mal möglichst "kompakt" zu schreiben. Das, was ich gepostet hatte, war Version 1.0. Version 3.0 war dann das hier:

```
class X{String _,T="zig",m="mill",b="bill",O="ion",A="iarde",s="sieb",x="sech",
i="zwölf",y="ach",v="en",N[]={"","ein","zwei","drei","vier","fünf",x+"s",s+v,y+
"t","neun"},g="elf",u[]={"","zehn","zwan"+T,N[3]+"ßig",N[4]+T,N[5]+T,x+T,s+T,y+
T,N[9]+T},M[]={"","tausend",m+O,m+A,b+O,b+A,"trill"+O};int z=100,c=10,w=c*z;int
h(long n){return(int)((n%w)/z);}String p(long n,int k){return n%w==0?p(n/w,k+1)
:n/w!=0?p(n/w,k+1)+q(n,k):q(n,k);}String q(long n,int k){return (h(n)!=0?N[h(n)
]+"hundert":"")+(t(n)!=0?t(n)==1?o(n)==0?u[1]:o(n)==1?g:o(n)==2?i:o(n)==6?x+u[1
]:o(n)==7?s+u[1]:o(n)==8?y+u[1]:N[o(n)]+u[1]:o(n)==0?u[t(n)]:N[o(n)]+"und"+u[t(
n)]:N[o(n)])+(k<=1?M[k]:o(n)==1&&t(n)==0?"e"+M[k]:k%2==0?M[k]+v:M[k]+"n");}int
t(long n){return(int)((n%z)/c);}int o(long n){return(int)(n%c);}static String p
(long n){return new X().P(n);}String P(long n){return(n==0?_:p(n,0));}}
```
(Ich fand das damals irgendwie mal ganz spaßig )


----------



## agentone (6. Jun 2010)

@NumText1b: Schon viel besser!



> Ob und nach welcher Rechtschreibung


Ja, ja die gute alte Rächtschraibung. Jedes Jahr wid sie geändert, damit der Duden-Verlag nicht pleite geht...



> (Ich fand das damals irgendwie mal ganz spaßig )


Aber so sieht es tatsächlich aus, wenn man zum Beispiel Code in javascript schreibt.
Siehe dort: http://code.jquery.com/jquery-1.4.2.min.js



> das Programm ursprünglich auf (Euro)Beträge abzielte


Jetzt ergibt das natürlich Sinn! Aber stell dir vor, du musst einen Ordnungszahlen-Generator (erstens, zweitens, drittens...) schreiben. Je nach Anwendungsfall muss das Programm entsprechend angepasst werden (Ordinalzahlen, Kardinalzahlen...). Irgendwie ziemlich nervig. Da habens die Engländer deutlich leichter (1st, 2nd, 3rd, 4th...).
Übrigens gibts dazu auch einen schönen Wiki-Eintrag: Zahlennamen ? Wikipedia


----------



## Wortraum (6. Jun 2010)

Marco13 hat gesagt.:


> Ob und nach welcher Rechtschreibung es nun "Vier Million Drei Tausend Zwei Hundert" oder "Viermillion dreitausend zweihundert" heißt, spielte aber für mich keine so große Rolle: …


Wer vier Million oder vier Buch schreibt, der braucht sich um Rechtschreibung nicht zu kümmern, da hast Du schon recht. 



agentone hat gesagt.:


> Da habens die Engländer deutlich leichter (1st, 2nd, 3rd, 4th...).


⒈, ⒉, ⒊, ⒋ Das scheint mir jetzt nicht unbedingt komplizierter.


----------



## agentone (6. Jun 2010)

> ⒈, ⒉, ⒊, ⒋



Was sollen das für Zeichen sein? Ich seh da nur 4 Kästen mit Zahlen drin.


----------



## Wortraum (6. Jun 2010)

agentone hat gesagt.:


> was sollen das für zeichen sein? Ich seh da nur 4 kästen mit zahlen drin.


1., 2., 3., 4. – u+2488, u+2489, u+248a, u+248b.

P.S.: Gibt es einen Grund, warum das Forum die Großbuchstaben U, A und B durch Kleinbuchstaben ersetzt?


----------



## Marco13 (6. Jun 2010)

agentone hat gesagt.:


> Ja, ja die gute alte Rächtschraibung. Jedes Jahr wid sie geändert, damit der Duden-Verlag nicht pleite geht...



Rechtschreibreform™ - rechtfertigt Fehler seit 1996 


_Aber so sieht es tatsächlich aus, wenn man zum Beispiel Code in javascript schreibt._

Der ist nur mit einem Programm kompakter gemacht, um die downloadzeit zu verringern...



_Jetzt ergibt das natürlich Sinn! Aber stell dir vor, du musst einen Ordnungszahlen-Generator (erstens, zweitens, drittens...) schreiben.... _

Ja, wie gesagt, das Programm war nur eingeschränkt für eine "echte, produktive Verwendung" gedacht. Wenn man damit alle grammatikalischen Eventualitäten in allen möglichen Sprachen abdecken wollte, wäre es kein 10-Zeiler mehr


----------



## agentone (6. Jun 2010)

> Der ist nur mit einem Programm kompakter gemacht, um die downloadzeit zu verringern...


... oder um ihn unlesbar zu machen:

```
var gurke=7;var gurke1=13;for(var bus=0;bus<gurke;alert(bus*gurke1)){bus++;}
```
So oder so ähnlich "verschlüsseln" manche JavaScript-Programmierer ihren Quellcode.
Sicherlich gibt es auch Programme, die so etwas können.


----------



## bandy (6. Jun 2010)

Ruzmanz hat gesagt.:


> Ich glaube er meint so was:
> (Integer 5 zu String "fünf" ist nicht möglich in Java.)
> 
> 
> ...



Du scheinst einer der Wenigen zu sein, die es verstanden haben was ungefaehr gesucht wird! Nur wenn man bei deinem Quelltext nur die Zeichenkette "zwei" ausgeben moechte, dann muss man zu den restlichen Werten von i2 auch eine if-Abfrage durchfuehren und das kann z.B. bei so einer Schleife:


```
for(int i2 = 0; i2 <= 40000; i2++)
```

sehr laestig werden, wenn man es dann 40000 mal:


```
if(i2 == ...)
                        System.out.println(".....");
```

schreiben muss um nur ein Feld zu aendern.

Deswegen wollte ich es nur einmal einen Wert der Schleife in String konvertieren und den Rest lassen wie es ist, aber anscheinend geht es bei Java so nicht wie ich es will:bahnhof:


----------



## Ruzmanz (6. Jun 2010)

Das ist doch Sinn der Sache. Wenn du erkennst, dass es ziemlich blöd ist 40.000 mal die selbe Anweisung zu schreiben, dann muss ein Algorithmus her. Es gibt sicherlich irgendwo jemanden der das selbe Problem gelöst hat, aber schau mal selbst wie du es hinbekommst.

Zum Beispiel erkennt man doch, das im Prinzip immer die selben Ausgaben folgen ab 12:

"drei" + "zehn"
"viert" + "zehn"
"fünf" + "zehn"
"sechs" + "zehn"
"sieben" + "zehn"
"acht" + "zehn"
"neun" + "zehn"
-> Nächste 10er-Folge:
"zwanzig"
"ein" + "und" + "zwanzig"
"zwei" + " und + "zwanzig"
...


----------



## agentone (6. Jun 2010)

> Deswegen wollte ich es nur einmal einen Wert der Schleife in String konvertieren und den Rest lassen wie es ist



Suchst du sowas?

```
if(i2 == 2){System.out.println("zwei");}
else{System.out.println(""+i2);}
```


----------



## Java-Freak (6. Jun 2010)

edit
hab nicht gesehn das es nich ne 2. seite gab


----------



## bandy (7. Jun 2010)

agentone hat gesagt.:


> Suchst du sowas?
> 
> ```
> if(i2 == 2){System.out.println("zwei");}
> ...




genau:lol::lol::lol::applaus::applaus::applaus:


----------



## agentone (7. Jun 2010)

Ich verweise noch mal auf dein Zitat:



> Deswegen wollte ich es nur einmal einen Wert der Schleife in String konvertieren und den Rest lassen wie es ist



Und meine Lösung ist meiner Meinung nach genau das was du suchst.


----------



## bandy (7. Jun 2010)

agentone hat gesagt.:


> Ich verweise noch mal auf dein Zitat:
> 
> 
> 
> Und meine Lösung ist meiner Meinung nach genau das was du suchst.



Genau, das war es auch:toll: Danke!


----------



## agentone (10. Jun 2010)

> Genau, das war es auch Danke!



Das ist jetzt nicht dein ernst, oder?


----------



## bandy (11. Jun 2010)

agentone hat gesagt.:


> Das ist jetzt nicht dein ernst, oder?



Doch, warum nicht?:rtfm:


----------



## agentone (11. Jun 2010)

> Doch, warum nicht?



Deine sechs Smileys klangen irgendwie ironisch. Aber ist ja jetzt auch egal, wenn dein Problem gelöst ist.


----------

