# Aus String bestimmtes Zeichen herausfinden



## Zettelkasten (14. Nov 2010)

Hallo!

Ich habe ein Galgenratenspiel programmiert, und jetzt habe ich das Problem, das mein Programm jeden Buchstaben einzeln braucht. Bei 10 Wörtern ist das ja kein Problem, aber das Spiel benötigt min. 50 Wörter, damit es richtig Spaß macht. Man müsste dass dan mit jedem Wort so machen:

```
if(Zufall == 32){
  // Haus
  Buchstabe[1] = "H";
  Buchstabe[2] = "A";
  Buchstabe[3] = "U";
  Buchstabe[4] = "S";
}
```
Um mir die Arbeit zu erleichtern wollte ich jetzt einen String Wortauswahl machen, in dem dann die ganzen Wörter stehen. Dann soll eine for-Schleife die einzelnen Zeichen in Buchstaben umwandeln, in etwa so:

```
String[] Wortauswahl {"Haus","Baum","Tier","usw."}
for(int i = 1;i <= Wortauswahl.getSize();i++)
{
  Buchstabe[i] = Wortauswahl[Zufall].getBuchstabe(i);
}
```
Das "getBuchstabe(i)" soll den Buchstaben mit der Nummer i herausschreiben und in den String Buchstabe_ packen.

Kann mir da jemand helfen?_


----------



## XHelp (14. Nov 2010)

```
charAt(i)
```
 ?


----------



## Final_Striker (14. Nov 2010)

Schau dir mal die charAt(int i) Methode der String-Klasse an.

String (Java 2 Platform SE v1.4.2)


----------



## gman (14. Nov 2010)

Dein zweiter Code ist etwas merkwürdig. Du gehst mit der for-Schleife alle Wörter
aus dem String-Array durch, nutzt in der Schleife aber ein zufällig gewähltes Wort
aus der Liste und nimmst dann den Buchstaben des Wortes an der Stelle von der
Zählervariablen "i"????

Und zu ersterem Code geht vielleicht so einfacher:


```
char[] buchstaben = "HAUS".toCharArray();
```


----------



## Zettelkasten (14. Nov 2010)

Eclips gibt mir das immer als Fehlermeldung an:

```
Wortauswahl[Zufall].charAt(i);
```


----------



## XHelp (14. Nov 2010)

Und Eclipse spricht genau das aus den Boxen: "Ja, du... ist falsch"?
Aber ich vermute mal, dass Wortauswahl bei dir ein String-Array ist, obwohl du da Char's speicherst.


----------



## Zettelkasten (14. Nov 2010)

Und wie kann ich das ändern?

_Sorry, aber irgendwie blick ich gerade nicht richtig durch..._


----------



## XHelp (14. Nov 2010)

Buchstabe als char-Array deklarieren?


----------



## ARadauer (14. Nov 2010)

1. Variablen schreibt man klein?

was brauchst du jetzt das Zeichen eines Strings an einer bestimmten Stelle? charAt .. liefert aber ein char.. mit +"" kann man es aber zu einem string machen...


```
for(int i = 0;i < 3;i++)
{
  Buchstabe[i] = Wortauswahl[Zufall].charAt(i);
}
```
das brauchst du gar nicht. du hast ja eh deien string aus dem array wortauswahl....


----------



## Zettelkasten (14. Nov 2010)

Oh, die Schleife muss so aussehen:

```
for(int i = 0; i < 13; i++)
{
  Buchstabe[i] = Wortauswahl[Zufall].charAt(i);
}
```


----------



## XHelp (14. Nov 2010)

Die Wörter sind doch gar nicht 13 Buchstaben lang, wie willst du da den 13. Buchstaben auslesen?


----------



## Zettelkasten (14. Nov 2010)

Ich weiß, aber ich will (fast) jedes Wort nehmen können, also auch welche mit 13 Buchstaben.

P.S.: Ich dachte mir, das dann automatisch "" als Zeichen genommen wird...


----------



## XHelp (14. Nov 2010)

Fangen wir mal von vorne an... Was genau willst du denn erreichen?


----------



## Zettelkasten (14. Nov 2010)

Also:
Ich habe belibig viele Wörter (Strings) und will von denen jetzt die einzelnen Buchstaben herauslesen. Also zum Beispiel so:

```
Wort: Haus
Buchstabe[1] = "H";
Buchstabe[2] = "A";
Buchstabe[3] = "U";
Buchstabe[4] = "S";
```
Ich könnte es auch so machen, aber da es ja "beliebig viele" Wörter sein können, geht das so (jeden falls nicht ohne großen Aufwand) nicht.
Also habe ich mir einen String Wortauswahl gemacht und will jetzt anhand einer for-Schleife (oder irgendwie anders) automatisch die Buchstaben übertragen lassen.


----------



## XHelp (14. Nov 2010)

Dann schau dir noch mal was gman im 4. Post geschrieben hat.


----------



## Zettelkasten (14. Nov 2010)

Und woher kommt das "HAUS"? Ich will doch verschiedene Wörter einsetzten.
Kann bitte jemand einen Code posten?


----------



## XHelp (14. Nov 2010)

Dann ersetzt du eben dein Haus durch dein 
	
	
	
	





```
wortauswahl[zufall]
```
... aber erst nach dem du die Variablen umbenannt hast, so dass die mit einem Kleinbuchstaben beginnen ...


----------



## Zettelkasten (14. Nov 2010)

Ah!
Jetzt habe ich das verstanden!!!!!!!!   
Aber eine Frage habe ich noch: Jetzt wird der erste Buchstabe von Haus, sprich H, als buchstabe[0] makiert. Wenn ich jetzt aber den ersten Buchstaben als buchstabe[1] usw. haben will, muss ich was tun?


----------



## XHelp (14. Nov 2010)

gar nicht... index fängt bei 0 an.


----------



## Zettelkasten (14. Nov 2010)

Ach ja, stimmt. Vielen Dank!


----------

