Я хочу преобразовать любую строку в измененный случай Camel или Title, используя некоторые предопределенные библиотеки, чем писать свои собственные функции.
Например, "HI tHiS is SomE Statement"
- "HI tHiS is SomE Statement"
Regex или любая стандартная библиотека мне помогут.
Я нашел некоторые библиотечные функции в eclipse, например STRING.toCamelCase();
, существует ли такая вещь?
Ответ 1
Я использовал ниже, чтобы решить эту проблему.
import org.apache.commons.lang.StringUtils;
StringUtils.capitalize(MyString);
Спасибо Теду Хоппу за справедливое указание, что вопрос должен был быть TITLE CASE вместо модифицированного CAMEL CASE.
Случай Верблюда обычно не содержит пробелов между словами.
Ответ 2
Вы можете легко написать метод для этого:
public static String toCamelCase(final String init) {
if (init == null)
return null;
final StringBuilder ret = new StringBuilder(init.length());
for (final String word : init.split(" ")) {
if (!word.isEmpty()) {
ret.append(Character.toUpperCase(word.charAt(0)));
ret.append(word.substring(1).toLowerCase());
}
if (!(ret.length() == init.length()))
ret.append(" ");
}
return ret.toString();
}
Ответ 3
От commons-lang3
org.apache.commons.lang3.text.WordUtils.capitalizeFully(String str)
Ответ 4
Обратитесь:
static String toCamelCase(String s){
String[] parts = s.split(" ");
String camelCaseString = "";
for (String part : parts){
if(part!=null && part.trim().length()>0)
camelCaseString = camelCaseString + toProperCase(part);
else
camelCaseString=camelCaseString+part+" ";
}
return camelCaseString;
}
static String toProperCase(String s) {
String temp=s.trim();
String spaces="";
if(temp.length()!=s.length())
{
int startCharIndex=s.charAt(temp.indexOf(0));
spaces=s.substring(0,startCharIndex);
}
temp=temp.substring(0, 1).toUpperCase() +
spaces+temp.substring(1).toLowerCase()+" ";
return temp;
}
public static void main(String[] args) {
String string="HI tHiS is SomE Statement";
System.out.println(toCamelCase(string));
}