Używam Java, aby uzyskać String
wejściowe od użytkownika. Staram się, aby pierwsza litera tego wpisu była pisana wielkimi literami.
Próbowałem tego:
String name;
BufferedReader br = new InputStreamReader(System.in);
String s1 = name.charAt(0).toUppercase());
System.out.println(s1 + name.substring(1));
co doprowadziło do tych błędów kompilatora:
Niezgodność typu: nie można przekonwertować z InputStreamReader na BufferedReader
Nie można wywołać metody toUppercase () na pierwotnym typie char
java
string
capitalize
sumithra
źródło
źródło
Odpowiedzi:
Na przykład:
źródło
StringUtils.capitalize(..)
z commons-langźródło
StringUtils.capitalize( "fred from jupiter" );
produkuje"Fred from jupiter"
. Łatwe ...: DKrótszy / szybszy kod wersji, w którym pierwsza litera ciągu ma być wielka, to:
wartość
name
wynosi"Stackoverflow"
źródło
Użyj wspólnej biblioteki Apache. Uwolnij swój mózg od tych rzeczy i unikaj wskaźnika zerowego i indeksu poza wyjątkami
Krok 1:
Zaimportuj wspólną bibliotekę języka apache, umieszczając ją w
build.gradle
zależnościachKrok 2:
Jeśli masz pewność, że ciąg jest pisany małymi literami, lub wystarczy zainicjować pierwszą literę, zadzwoń bezpośrednio
Jeśli chcesz się upewnić, że tylko pierwsza litera jest pisana wielkimi literami, na przykład rób to
enum
,toLowerCase()
najpierw zadzwoń i pamiętaj, że wyrzuci,NullPointerException
jeśli łańcuch wejściowy jest pusty.Oto więcej próbek dostarczonych przez apache. jest wolny od wyjątków
Uwaga:
WordUtils
jest również zawarty w tej bibliotece, ale jest przestarzały. Proszę tego nie używać.źródło
How to capitalize the first letter of a String in Java?
.Jawa:
po prostu metoda pomocnicza do wielkich liter każdego łańcucha.
Potem po prostu zadzwoń
str = capitalize(str)
Kotlin:
źródło
str
wartość jest zerowa. Przed użyciem tego ciągu sprawdź, czy łańcuch nie ma wartości zerowej i ma co najmniej jeden znak.Prawdopodobnie chcesz to:
(konwertuje pierwszy znak na wielkie litery i dodaje resztę oryginalnego ciągu)
Tworzysz także czytnik strumienia wejściowego, ale nigdy nie odczytujesz żadnej linii. Tak
name
zawsze będzienull
.To powinno działać:
źródło
WordUtils.capitalize(java.lang.String)
z Apache Commons .źródło
Poniższe rozwiązanie będzie działać.
Nie można użyć metody ToUpperCase () na prymitywnym znaku, ale można najpierw utworzyć cały ciąg na wielkie litery, a następnie wziąć pierwszy znak, a następnie dołączyć do podłańcucha, jak pokazano powyżej.
źródło
Zastosowanie
WordUtils.capitalize(str)
.źródło
Najkrótszy też:
Pracował dla mnie.
źródło
Ustaw ciąg na małe litery, a następnie ustaw pierwszą literę na górną w następujący sposób:
następnie wielką literą pierwsza litera:
substring po prostu dostaje kawałek większego sznurka, a następnie łączymy je z powrotem.
źródło
Co z WordUtils.capitalizeFully () ?
źródło
Użyj tej metody użyteczności, aby uzyskać całą pierwszą literę wielkimi literami.
źródło
źródło
Możesz także spróbować tego:
Jest to lepsze (zoptymalizowane) niż przy użyciu podciągów. (ale nie martw się o mały sznurek)
źródło
Możesz użyć
substring()
do tego.Ale są dwa różne przypadki:
Przypadek 1
Jeśli
String
kapitalizacja ma być czytelna dla człowieka, należy również określić domyślne ustawienia regionalne:Przypadek 2
Jeśli wielkie
String
litery mają być odczytywane maszynowo, unikaj ich używania,Locale.getDefault()
ponieważ zwracany ciąg będzie niespójny w różnych regionach, aw tym przypadku zawsze określ te same ustawienia regionalne (na przykładtoUpperCase(Locale.ENGLISH)
). Zapewni to spójność ciągów używanych do przetwarzania wewnętrznego, co pomoże uniknąć trudnych do znalezienia błędów.Uwaga: Nie trzeba określać
Locale.getDefault()
dlatoLowerCase()
, jak odbywa się to automatycznie.źródło
W Android Studio
Dodaj tę zależność do swojej
build.gradle (Module: app)
Teraz możesz użyć
źródło
UWAGA: Jeśli masz już zależność Apache Common Lang, rozważ użycie ich StringUtils.capitalize, jak sugerują inne odpowiedzi.
WDRAŻANIE: https://github.com/spring-projects/spring-framework/blob/64440a5f04a17b3728234afaa89f57766768decb/spring-core/src/main/java/org/springframework/util/StringUtils.java#5535-L
REF: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/StringUtils.html#capitalize-java.lang.String-
źródło
TO DZIAŁA 101%
źródło
To tylko po to, aby pokazać, że się nie myliłeś.
Uwaga: To nie jest najlepszy sposób, aby to zrobić. Ma to na celu pokazanie PO, że można to również zrobić przy użyciu
charAt()
. ;)źródło
Character.toString(name.charAt(0))
zamiast""+name.charAt(0)
za pokazanie tego, co naprawdę chcesz robić.To zadziała
źródło
Możesz użyć następującego kodu:
źródło
Spróbuj tego
Metoda ta polega na tym, że słowo „witaj świecie” zamienia je w „Witaj świecie”, rozpoczynając wielkie słowo na początku każdego słowa.
źródło
Podane odpowiedzi dotyczą dużej litery tylko jednego słowa. użyj następującego kodu, aby zapisać cały ciąg.
wynik :
This Is A Random String
źródło
Jeśli Input to UpperCase, użyj następujących poleceń:
str.substring (0, 1) .toUpperCase () + str.substring (1) .toLowerCase ();
Jeśli wartość wejściowa to LowerCase, użyj następujących opcji:
str. podciąg (0, 1) .toUpperCase () + str. podciąg (1);
źródło
Spójrz na ACL WordUtils.
WordUtils.capitalize („your string”) == „Your string”
Jak wielkimi literami każda pierwsza litera słowa w ciągu?
źródło
źródło
Możesz użyć następującego kodu:
przykładowy test z JUnit:
źródło
Użycie
commons.lang.StringUtils
najlepszej odpowiedzi to:Uważam, że jest genialny, ponieważ owija ciąg za pomocą bufora StringBuffer. Możesz manipulować StringBuffer, jak chcesz i używając tej samej instancji.
źródło
Jeszcze inny przykład, w jaki sposób pierwszą literę wprowadzanych przez użytkownika liter należy wpisać wielką literą:
źródło