# Erstes Zeichen im String "toUpperCase"n



## alphaboy (3. Mrz 2011)

Hallo Leute, 
ich steh grad vor dem Problem, dass ich es nicht hinkriege, das erste Zeichen von einem String in einen Großbuchstaben umzuwandeln. Ich wollte fragen, wie man sowas am Besten macht.
Ich hoffe ihr könnt mir helfen.

lg,
alphaboy


----------



## dehlen (3. Mrz 2011)

alphaboy hat gesagt.:


> Hallo Leute,
> ich steh grad vor dem Problem, dass ich es nicht hinkriege, das erste Zeichen von einem String in einen Großbuchstaben umzuwandeln. Ich wollte fragen, wie man sowas am Besten macht.
> Ich hoffe ihr könnt mir helfen.
> 
> ...


CharAt(1); 
Und dann toUpperCase
Glaube ich zumindest


----------



## eRaaaa (3. Mrz 2011)

z.B.

```
string = Character.toUpperCase(string.charAt(0))+string.substring(1);
```

oder mit einem StringBuilder, oder ....


----------



## Marco01_809 (3. Mrz 2011)

```
public String firstLetterToUpperCase(String text) {
		return Character.toUpperCase(text.charAt(0)) + text.substring(1).toLowerCase();
	}
```
Ungetestet. Macht den ersten Buchstaben in einem String groß ("Character.toUpperCase(text.charAt(0))") und den Rest Klein ("text.substring(1).toLowerCase()"). 

Ist aber ungetestet.
Gruß Marco.

EDIT: eRaaaas Methode ist natürlich besser, wenn du den rest des Strings nicht klein haben möchtest


----------



## dehlen (3. Mrz 2011)

Ja Sry charAt(0) natürlich -.-


----------



## alphaboy (3. Mrz 2011)

Danke an alle. Ich hab mich dann für eRaaa´s Lösung entschieden. Nur ich verstehe das 


```
+String.substring(1);
```

nich so ganz ???:L . 

PS: Nette und schnelle Community hier, weiter so


----------



## Haave (3. Mrz 2011)

Die Methode substring() wird für das sog. Slicing benutzt, also um gezielt auf bestimmte Teile ("Unterstrintgs) eines Strings zuzugreifen, und zwar ab einer bestimmten Stelle des Strings bis zu einer bestimmten anderen Stelle. Im genannten Fall mit substring(1) ist 1 der Startindex für das Slicing, und weil keine Grenze angegeben ist, wird implizit bis zum Ende des Strings geslicet. Die von eRaaaa gepostete Codezeile erzeugt also einen neuen String, dem das erste Zeichen des alten Strings als Großbuchstabe sowie der Rest des alten Strings ab Index 1 angefügt wird.

Siehe auch:
substring() mit einem Parameter
substring() mit zwei Parametern


----------



## megan_002 (6. Mrz 2011)

Halloo 

ich wollte zu dieser Frage, wie man den ersten Buchstaben groß bekommt, noch wissen, wie es geht, dass,wenn man einen Satz einliest, immer der 1.Buchstabe eines Wortes groß ist??

Ich hatte dieses Beispiel bei meiner Zwischenprüfung und habe es nicht geschafft, dass der Anfangsbuchstabe jedes Wortes groß ist!!???:L

Danke schon mal für die Hilfe!


----------



## dehlen (6. Mrz 2011)

Satz per Buffered Reader einlesen dann sagen das er nach jedem leerzeichen splitten soll und dann wie oben schon gemacht das erste wort immer groß schreiben lassen


----------



## eRaaaa (6. Mrz 2011)

dehlen hat gesagt.:


> Satz per Buffered Reader einlesen dann sagen das er nach jedem leerzeichen splitten soll und dann wie oben schon gemacht das erste wort immer groß schreiben lassen



Zusätzlich würde ich noch schauen ob es sich dabei überhaupt um einen Buchstaben [a-z] handelt. Sonst versuchst du auch Satzzeichen oder Zahlen etc. zu wandeln !


----------



## dehlen (6. Mrz 2011)

So mal auf die Schnelle:

```
import java.io.*;
public class Split
{
   public static void main(String[] args) throws IOException {
   BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
   String eingabe;
 
   
   System.out.println("Bitte Satz oder Wort eingeben: ");
   eingabe= input.readLine();
   
   String[] words = eingabe.split("\\s+"); 
    System.out.println("String: "+eingabe);

for(String word : words){
  System.out.println(""+word);
}
    }
}
```

so kannst du die wörter teilen jetzt musst du nur noch die von eraaaa angesprochene Abfrage einbauen und natürlich den ersten Buchstaben immer groß


----------



## megan_002 (6. Mrz 2011)

dankeschön für die hilfe!


----------

