2016-02-25 4 views
0

У меня есть мысль (возможно, тоже завершено)Как изменить значение в формате «Xxxxx», даже если пользователь вводит как «xXXxX»? Java

  1. Интересно, если я могу подстроки (1), затем используйте .toUpperCase() для строки
  2. и после этого использования GetLength(), чтобы иметь длина затем .toLowerCase() остальное в строке

Есть ли более простой способ сделать это? Поэтому я могу сохранить значение в формате «Xxxx». Спасибо.

Например: Независимо от того, как пользователь вводит значение как «hELlo» или «HEllO», система всегда сохраняет значение «Hello». Это может объяснить мой вопрос.

+2

Возможный дубликат http://stackoverflow.com/questions/1086123/string-conversion-to -title-case – declension

ответ

1

Я написал небольшую утилиту для себя. Это может помочь вам. Я был уверен, что в моей строке всегда будут алфавиты, поэтому не волнует других персонажей. вы можете захотеть изменить в соответствии с вашими потребностями.

int length = "yourstring".length();/// get the length of the string 
     String camelCase = removeCharacters.substring(0, 1).toUpperCase();// upper case the first alphabet 
     camelCase = camelCase + "yourstring".substring(1, length).toLowerCase();// lowercase all other alphabets 
+0

Почему вы изобретаете колесо? Apache уже поставляется с этим из коробки, а camelCase отличается от того, о чем попросил OP в своем вопросе. – hd1

0

Подстрока имеет версию с одним аргументом и версию с двумя аргументами. Второй аргумент не включен. Таким образом, первый бит строки, которую вы хотите это

myString.subString(0, 1) 

и второй бит

myString.subString(1) 

Вы можете вызывать методы TOUPPER и TOLOWER по результатам, и объединить их.

+0

Это ужасно с точки зрения эффективности. – hd1

+1

Это может быть правдой, но он задает вопрос для разбора пользовательского ввода. Это вряд ли будет очень длинным, ни в критическом разделе. Я думаю, можно с уверенностью предположить, что мы можем оптимизировать время разработки здесь. :) –

+0

Пожалуйста, см. Мой ответ для более надежного решения – hd1

0

Да, проект Apache Commons-Lang имеет WordUtils класс с методом прописными буквами, как в следующем примере:

WordUtils.capitalize("i am FINE") yields: "I Am FINE" 
+0

Если я хотел бы использовать этот метод. Какой пакет следует импортировать? Я использую blueJay, он говорит, что «org.apache.commons.lang3.text» не существует. (import org.apache.commons.lang3.text.WordUtils;) – Lenic

+0

Включите банку commons-lang3 в свой CLASSPATH и импортируйте файл org.apache.commons.lang3.text.WordUtils в верхней части файла. – hd1

Смежные вопросы