# Zeichen an bestimmter Stelle im String einfügen.



## GraViTy (12. Dez 2005)

Hallo!
Also ich habe folgendes:

```
String underscores = " _ _ _ _";
String wort = "Hase";
//Als ein Beispiel:
char taste = 'a';
```

Wie kann ich es anstellen, dass an einer bestimmten Stelle im String underscores das Zeichen 'a' eingefügt wird? Also indem Fall gehört das 'a' an die Stelle des 2. Unterstriches.
[/code]


----------



## Roar (12. Dez 2005)

geht nur mit StringBuffer -> insert(1, "a);


----------



## Sky (12. Dez 2005)

per indexOf kannst Du ermitteln, wo dein gesuchter Buchstabe ist und wie Roar schon sagte: Ersetzen geht nur mit Stringbuffer (bzw. könnte man sich mit substring etc. auch wieder einen neuen String zusammen basteln... rate ich aber von ab).

ach ja, wenn's Zeichen nicht drin vorkommt gibt indexOf "-1" zurück


----------



## messi (12. Dez 2005)

Oder direkt als char[]:

```
String wort = "hallo";

final char[] underscores = new char[2 * wort.length() - 1];
for (int i = 0; i < underscores.length; i++) {
    if ((i & 1) == 0)
        underscores[i] = '_';
    else
        underscores[i] = ' ';

char taste = 'a';

int pos = wort.indexOf(taste, 0);
while (pos >= 0) {
    underscores[2 * pos] = taste;
    pos = wort.indexOf(taste, pos + 1);
}
```

Nachtrag: Leerzeichen im char[], damit Skys Vorschlag unten direkt für die Ausgabe genutzt werden kann.


----------



## Sky (12. Dez 2005)

messi hat gesagt.:
			
		

> Oder direkt als char[]:
> ...


Sehr schöne Lösung.

Der Vollständigkeit halber:

```
String s = new String(underscores);
```
oder auch

```
String s = String.valueOf(underscores);
```
Um dein char-Array wieder in einen String zu wandeln


----------

