是否有内置函数为您执行title-case或者我是否必须编写自定义函数?我正试图为全名命名。
即。 john doe 应转换为: John Doe
答案 0 :(得分:1)
我现在能想到的最简单的代码:
String str = "mR. jOhn smIth";
final String[] arr = TextUtils.split(str," ");
final int len = arr.length;
for(int i = 0; i < len; i++)
{
final String s = arr[i];
final String s0 = "" + s.toUpperCase().charAt(0);
final String s1 = s.toLowerCase().substring(1, s.length());
arr[i] = s0 + s1;
}
str = TextUtils.join(" ", arr); // and now str contains "Mr. John Smith"
答案 1 :(得分:0)
不,它在官方Android API中不存在,但编写自己的API非常容易。像这样:
public static String camelCasedString(String s){
boolean shouldCapitalize = true;
char[] arr = s.toCharArray();
for(int i = 0; i < arr.length; i++){
if(arr[i] == ' '){
shouldCapitalize = true;
} else if(shouldCapitalize){
arr[i] = Character.toUpperCase(arr[i]);
shouldCapitalize = false;
} else {
arr[i] = Character.toLowerCase(arr[i]);
}
}
return new String(arr);
}
输出:
System.out.println(camelCasedString("john dOe")); //John Doe
System.out.println(camelCasedString("john doe")); //John Doe
System.out.println(camelCasedString("John Doe")); //John Doe
System.out.println(camelCasedString("JOHN DOE")); //John Doe
答案 2 :(得分:-1)
你还没有说过什么语言,所以我只假设javascript。 我所知道的最紧凑的方式是:
String.prototype.titleCase = function() {
t = this.split(' ').map((word) => word.charAt(0).toUpperCase()+word.slice(1)).join(' ');
return t;
}
因为我已经在String.prototype上声明了这个函数,所以你可以这样使用它:
"This is a title".titleCase() // >> "This Is A Title"
这可能不是报纸编辑所拥有的100%,但它确实是你希望它做的事情。如果您需要进一步解释,请告诉我。