Преобразование в верхний и нижний регистр в Java
Я хочу, чтобы преобразовать первый символ строки в верхний регистр, а остальные символы в нижний регистр. Как я могу это сделать?
пример:
String inputval="ABCb" OR "a123BC_DET" or "aBcd"
String outputval="Abcb" or "A123bc_det" or "Abcd"
6 ответов:
Попробуй вот это:
String properCase (String inputVal) { // Empty strings should be returned as-is. if (inputVal.length() == 0) return ""; // Strings with only one character uppercased. if (inputVal.length() == 1) return inputVal.toUpperCase(); // Otherwise uppercase first letter, lowercase the rest. return inputVal.substring(0,1).toUpperCase() + inputVal.substring(1).toLowerCase(); }
он в основном обрабатывает специальные случаи пустой и односимвольной строки в первую очередь и правильно обрабатывает строку из двух с лишним символов в противном случае. И, как указано в комментарии, односимвольный специальный случай не нужен для функциональности, но я все же предпочитаю быть явным, особенно если это приводит к меньшему количеству бесполезных вызовов, таких как подстрока, чтобы получить пустую строку, нижнюю оболочку, а затем добавить ее.
WordUtils.capitalizeFully(str)
с Apache commons-lang имеет точную семантику по мере необходимости.
String a = "ABCD"
используя этот
a.toLowerCase();
все буквы преобразуются в простые, "abcd"
используя этоa.toUpperCase()
все буквы будут преобразованы в капитал, "ABCD"
это первое письмо с большой буквы:
a.substring(0,1).toUpperCase()
это конверт другой буквы простой
a.substring(1).toLowerCase();
мы можем получить сумму этих двух
a.substring(0,1).toUpperCase() + a.substring(1).toLowerCase();
результат = "Abcd"
String inputval="ABCb"; String result = inputval.substring(0,1).toUpperCase() + inputval.substring(1).toLowerCase();
изменил бы "ABCb " на"Abcb"
Я считаю, что это проще, чем все предыдущие правильный ответ. Я также брошу в javadoc. : -)
/** * Converts the given string to title case, where the first * letter is capitalized and the rest of the string is in * lower case. * * @param s a string with unknown capitalization * @return a title-case version of the string */ public static String toTitleCase(String s) { if (s.isEmpty()) { return s; } return s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase(); }
строки длины 1 не нужно рассматривать как частный случай, потому что
s.substring(1)
возвращает пустую строку, когдаs
имеет длину 1.
/* This code is just for convert a single uppercase character to lowercase character & vice versa.................*/ /* This code is made without java library function, and also uses run time input...*/ import java.util.Scanner; class CaseConvert { char c; void input(){ //@SuppressWarnings("resource") //only eclipse users.. Scanner in =new Scanner(System.in); //for Run time input System.out.print("\n Enter Any Character :"); c=in.next().charAt(0); // input a single character } void convert(){ if(c>=65 && c<=90){ c=(char) (c+32); System.out.print("Converted to Lowercase :"+c); } else if(c>=97&&c<=122){ c=(char) (c-32); System.out.print("Converted to Uppercase :"+c); } else System.out.println("invalid Character Entered :" +c); } public static void main(String[] args) { // TODO Auto-generated method stub CaseConvert obj=new CaseConvert(); obj.input(); obj.convert(); } } /*OUTPUT..Enter Any Character :A Converted to Lowercase :a Enter Any Character :a Converted to Uppercase :A Enter Any Character :+invalid Character Entered :+*/