Czy są dostępne jakieś wbudowane metody konwertowania ciągu znaków na format wielkości liter?
java
string
title-case
TylerH
źródło
źródło
Odpowiedzi:
Apache Commons StringUtils.capitalize () lub Commons Text WordUtils.capitalize ()
np.
WordUtils.capitalize("i am FINE") = "I Am FINE"
z dokumentu WordUtilsźródło
StringUtils.capitalise()
capitalize()
?W klasie String języka Java nie ma metod capitalize () ani titleCase (). Masz dwie możliwości:
Przykładowa realizacja
Testcase
wyjścia:
źródło
char[]
wStringBuilder
Sugeruję użyciunew StringBuilder(input.length())
Jeśli mogę przedstawić swoje podejście do rozwiązania ...
Poniższa metoda jest oparta na tej, którą opublikował dfa. Wprowadza następującą zasadniczą zmianę (która jest dopasowana do rozwiązania, którego potrzebowałem w tamtym czasie): wymusza na wszystkich znakach w ciągu wejściowym małe litery, chyba że jest bezpośrednio poprzedzone „ogranicznikiem aktywnym”, w którym to przypadku znak jest wymuszany na duże litery.
Głównym ograniczeniem mojej procedury jest to, że zakłada ona, że „przypadek tytułu” jest jednolicie zdefiniowany dla wszystkich lokalizacji i jest reprezentowany przez te same konwencje dotyczące wielkości liter, których użyłem, a więc jest mniej przydatny pod tym względem niż kod dfa.
WARTOŚCI TESTOWE
WYJŚCIA
źródło
Character.toTitleCase
zamiast tego.Użyj WordUtils.capitalizeFully () z Apache Commons.
źródło
Możesz użyć apache commons langs w następujący sposób:
dokument java można znaleźć tutaj: WordUtils.capitalize W pełni dokument java
a jeśli chcesz usunąć spacje między światami, możesz użyć:
można znaleźć dokumentację java dla String StringUtils.remove dokumentację java
mam nadzieję, że to pomoże.
źródło
Jeśli chcesz uzyskać poprawną odpowiedź zgodnie z najnowszym standardem Unicode, użyj icu4j.
Zauważ, że jest to wrażliwe na ustawienia regionalne.
Dokumentacja API
Realizacja
źródło
Oto kolejne podejście oparte na odpowiedziach @ dfa i @ scottb, które obsługują wszelkie znaki inne niż litery / cyfry:
Podane dane wejściowe:
wyjście jest
źródło
To jest coś, co napisałem, aby przekonwertować snake_case na lowerCamelCase, ale można je łatwo dostosować w zależności od wymagań
źródło
Wiem, że to jest starszy, ale nie ma prostej odpowiedzi, potrzebowałem tej metody do mojego kodowania, więc dodałem tutaj, prostą w użyciu.
źródło
Miałem ten problem i szukałem go, a następnie stworzyłem własną metodę, używając niektórych słów kluczowych w języku Java, wystarczy przekazać zmienną String jako parametr i uzyskać dane wyjściowe jako odpowiednie zatytułowane String.
źródło
możesz bardzo dobrze używać
lub
z Google API.
źródło
Niedawno napotkałem ten problem i niestety miałem wiele przypadków nazw zaczynających się od Mc i Mac, skończyło się na tym, że użyłem wersji kodu Scotta, którą zmieniłem, aby obsługiwać te prefiksy, więc jest tutaj na wypadek, gdyby ktoś chciał go użyć.
Wciąż istnieją skrajne przypadki, w których to pomija, ale najgorszą rzeczą, jaka może się zdarzyć, jest to, że litera będzie pisana małymi literami, gdy powinna być wielka.
źródło
Konwersja na właściwą wielkość liter:
Wynik: „To jest jakiś tekst”
źródło
Korzystanie z Springa
StringUtils
:Jeśli i tak już używasz Springa, pozwala to uniknąć wprowadzania innego frameworka.
źródło
Użyj tej metody, aby przekonwertować ciąg na wielkość liter:
źródło
Ten konwerter przekształca dowolny ciąg zawierający wielkość liter wielbłąda, spacje, cyfry i inne znaki na oczyszczoną wielkość liter.
Oto kilka danych wejściowych:
I moje wyniki:
źródło
Wygląda na to, że żadna z odpowiedzi nie formatuje tego w rzeczywistym przypadku tytułowym: „How to Land Your Dream Job”, „To Kill a Mockingbird”, itp., Więc stworzyłem własną metodę. Działa najlepiej w przypadku tekstów w języku angielskim.
źródło
To najprostsze rozwiązanie
źródło
To powinno działać:
źródło
Najprostszym sposobem przekształcenia dowolnego ciągu znaków w wielkość liter tytułu jest użycie pakietu googles org.apache.commons.lang.WordUtils
Spowoduje to
Nie jestem pewien, dlaczego nazywa się to „capitalizeFully”, gdzie w rzeczywistości funkcja nie generuje pełnego wyniku kapitałowego, ale tak czy inaczej jest to narzędzie, którego potrzebujemy.
źródło
capitalizeFully
ponieważ wszystkie słowa są pisane wielką literą, łącznie z tymi, które powinny być pisane małymi literami w tytule. grammar.about.com/od/tz/g/Title-Case.htmPrzepraszam, że jestem początkującym, więc mój nawyk programowania jest do niczego!
źródło