# String für einen int-Wert ausgeben?



## HPasch (30. September 2013)

Hey Leute,

wie der Titel schon vermuten lässt möchte ich einem int-Wert einen String zuweisen. Konkreter geht es darum, dass ich mithilfe einer Rechnung zur Bestimmung eines Wochentages, zu einem bestimmten Datum, eine Zahl (int h) herausbekomme.

Nun möchte ich mir aber nicht die errechnete Zahl, sondern einen Wochentag ausgeben lassen. Also beispielsweise für das Ergebnis 0 den "Sonntag". 

Habe schon ein wenig herumprobiert, aber bin, wenn es um Java geht, blutiger Anfänger und komme einfach nicht drauf.

Wäre super wenn ihr helfen könntet.

Mfg


----------



## sheel (30. September 2013)

Hi und Willkommen bei tutorials.de,


```
String s;
if(h == 0)
    s = "Sonntag";
else if(h == 1)
    s = "Montag";
else if(h == 2)
    s = "Dienstag";
```
usw.

Wenn man das öfter an mehreren Stellen im Programm braucht
lohnt sich uU. die Verwendung einer Map und/oder die Auslagerung in eine eigene Methode.

(Gaußsche Wochentagsformel? )


----------



## HPasch (30. September 2013)

Hey sheel,

danke schonmal für deine Antwort. Hat so auch alles geklappt, allerdings kriege ich nun bei folgendem:


```
System.out.println("Der " + t + "." + m + "." + j + " ist ein " + s);
```

eine Fehlermeldung für "s" : The local variable s may not have been initialized.


----------



## ComFreek (30. September 2013)

Du hast den Code falsch übernommen. Zeige mal deinen aktuell kompletten Code.


PS: Code bitte in Codetags packen ([code=java]...[/code]). Ich hab's dir mal für deinen letzten Beitrag gemacht


----------



## HPasch (30. September 2013)

Code lautet:


```
import Prog1Tools.IOTools;


public class Aufgabe1{
	
    public static void main (String[] args){

	int t = IOTools.readInteger("Tage: ");
	int m = IOTools.readInteger("Monate: ");
	int j = IOTools.readInteger("Jahre: ");
	int m1;
	int j1;
	
	if (m<=2) {
		m1 = m+10;
		j1 = j-1; }
	else {
		m1 = m-2;
		j1 = j+0; }

	int c = j1/100;
	int y = j1%100;
	int h = (((26*m1-2)/10)+t+y+y/4+c/4-2*c)%7;

	if (h < 0) {
		h = h + 7; }
	
	String s;
	if (h == 0) {
		s = "Sonntag";
		System.out.println(s); }
	else if (h == 1){
		s = "Montag";
	    System.out.println(s); }
	else if (h == 2){
		s = "Dienstag";
	    System.out.println(s); }
	else if (h == 3){
		s = "Mittwoch";
	    System.out.println(s); }
	else if (h == 4){
		s = "Donnerstag";
	    System.out.println(s); }
	else if (h == 5){
		s = "Freitag";
	    System.out.println(s); }
	else if (h == 6){
		s = "Samstag";
	    System.out.println(s); }

	System.out.println("Der " + t + "." + m + "." + j + " ist ein " + s);

    }
}
```


----------



## sheel (30. September 2013)

Wenn du die else-if bis 6 (Samstag) so weitergemacht hast (sehe gerade, du hast )
kommt der Fehler deshalb, weil s tatsächlich keinen Wert bekommt,
wenn die h etwas Anderes außer 0-6 ist.

Eine mögliche Lösung: Mach nach Samstag noch etwas wie

```
else
    s = "Fehler";
```
dazu.


----------



## ComFreek (30. September 2013)

*/Edit* Vorherigen Inhalt hier gelöscht; war falsch.

Und bitte mal [Strg]+[Shift]+[F] drücken, damit dein Code besser formatiert wird


----------



## HPasch (30. September 2013)

Alles klar hat geklappt! 

Super, danke!


----------



## sheel (30. September 2013)

ComFreek hat gesagt.:


> Das ist übrigens gar keine Fehlermeldung!


Hm, bei mir schon. Was für ein JRE/JDK hast du denn?


ComFreek hat gesagt.:


> Und bitte mal [Strg]+[Shift]+F drücken, damit dein Code besser formatiert wird


 ?


----------



## ComFreek (30. September 2013)

sheel hat gesagt.:


> Hm, bei mir schon. Was für ein JRE/JDK hast du denn?


Ich hatte es gar nicht getestet, sondern einfach frei aus dem Bauch heraus gesagt. Die Fehlermeldung klang so eher nach Warnung, doch es ist tatsächlich ein Error in Java.



> ?



Zum Code-Formatieren (wahrscheinlich in Eclipse)


----------

