На данный момент я использую этот код, чтобы сделать мою первую букву заглавной строкой.
String output = input.substring(0, 1).toUpperCase() + input.substring(1);
Мне это кажется очень грязным... есть ли прямой или элегантный способ...
На данный момент я использую этот код, чтобы сделать мою первую букву заглавной строкой.
String output = input.substring(0, 1).toUpperCase() + input.substring(1);
Мне это кажется очень грязным... есть ли прямой или элегантный способ...
Как насчет этого:
String output = Character.toUpperCase(input.charAt(0)) + input.substring(1);
Я не могу придумать ничего чище без использования внешних библиотек, но это определенно лучше, чем то, что у вас есть сейчас.
StringUtils.capitalize
- нет.
- person arshajii; 10.06.2013
StringUtils.capitalize( "fred from jupiter" );
производит "Fred from jupiter"
. Это все, что вам нужно!
- person udoline; 29.05.2019
Вам следует взглянуть на StringUtils
класс из Apache Commons Lang lib — он имеет метод .capitalize()
Описание из библиотеки:
Делает строку заглавной, изменяя первую букву на заглавную в соответствии с Character.toTitleCase(char). Никакие другие буквы не меняются.
StringUtils.capitalize( "fred from jupiter" );
производит "Fred from jupiter"
. Только первый символ из объекта String будет в верхнем регистре.
- person udoline; 29.05.2019
Предполагая, что вы можете использовать Java 8, вот функциональный способ, о котором никто не просил...
import java.util.Optional;
import java.util.stream.IntStream;
public class StringHelper {
public static String capitalize(String source) {
return Optional.ofNullable(source)
.map(str -> IntStream.concat(
str.codePoints().limit(1).map(Character::toUpperCase),
str.codePoints().skip(1)))
.map(stream -> stream.toArray())
.map(arr -> new String(arr, 0, arr.length))
.orElse(null);
}
}
Он элегантен тем, что обрабатывает случаи нулевых и пустых строк без каких-либо условных операторов.
StringUtils.capitalize( "fred from jupiter" );
производит "Fred from jupiter"
. Это меньше исходного кода... :D
- person udoline; 29.05.2019
Character.toString(a.charAt(0)).toUpperCase()+a.substring(1)
P.S = a это строка.
Вот, подержите мое пиво
String foo = "suresh";
String bar = foo.toUpperCase();
if(bar.charAt[0] == 'S'){
throw new SuccessException("bar contains 'SURESH' and has the first letter capital").
}
_123
(начиная с пробела), она выдает NullPointerException
. Ваш ответ также кажется немного сложным по сравнению с другими.
- person pzaenger; 23.08.2014