我不是指textInput。我的意思是,一旦您在一个TextView中有静态文本(从数据库调用用户输入的数据填充而来(可能未大写)),如何确保它们被大写?
谢谢!
我应该能够通过标准的Java字符串操作来实现这一点,而不需要使用Android或TextView特定的方法。
例如:
String upperString = myString.substring(0, 1).toUpperCase() + myString.substring(1).toLowerCase();
虽然可能有无数种方法来完成这个任务,但请参阅String文档。
编辑
我添加了.toLowerCase()
以下内容不适用于TextView,但适用于EditText;即使是在EditText中,它也仅适用于从键盘输入的文本,而不适用于使用setText()加载的文本。更具体地说,它打开了键盘上的大写锁定,并且用户可以根据自己的意愿覆盖这一设置。
android:inputType="textCapSentences"
或者TV.sname.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
这将使首字母大写。
或者
compile 'org.apache.commons:commons-lang3:3.4' //in build.gradle module(app)
tv.setText(StringUtils.capitalize(myString.toLowerCase().trim()));
对于 Kotlin,只需调用
textview.text = string.capitalize()
StringBuilder sb = new StringBuilder(name);
sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
return sb.toString();
compile 'org.apache.commons:commons-lang3:3.4'
然后使用 WordUtils.capitalizeFully(name)
。private String getCapsSentences(String tagName) {
String[] splits = tagName.toLowerCase().split(" ");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < splits.length; i++) {
String eachWord = splits[i];
if (i > 0 && eachWord.length() > 0) {
sb.append(" ");
}
String cap = eachWord.substring(0, 1).toUpperCase()
+ eachWord.substring(1);
sb.append(cap);
}
return sb.toString();
}
结果:
I/P brain
O/P 大脑
I/P Brain and Health
O/P 大脑和健康
I/P brain And health
to O/P 大脑和健康
I/P brain's Health
to O/P 大脑的健康
I/P brain's Health and leg
to O/P 大脑的健康和腿部
希望这可以帮到您。
对于未来的访客,你也可以(我最好的建议)从Apache中导入WordUtil
,并向您的应用程序添加许多有用的方法,例如如下所示的capitalize
:
对于Kotlin,如果您想确保格式为“Aaaaaaaaa”,您可以使用:
myString.toLowerCase(Locale.getDefault()).capitalize()
接受的答案很好,但如果你正在使用它从Android中的textView获取值,最好检查字符串是否为空。 如果字符串为空,它将抛出异常。
private String capitizeString(String name){
String captilizedString="";
if(!name.trim().equals("")){
captilizedString = name.substring(0,1).toUpperCase() + name.substring(1);
}
return captilizedString;
}
fun String.firstCap()=this.replaceFirstChar { it.uppercase() }
"lowercase letter".firstCap() //gives "Lowercase letter"
capitalize
已被弃用,我已经在答案中添加了原因和解决方法 - https://dev59.com/43A75IYBdhLWcg3wMmGo#67482851 - Jay Wick