Android 如何在自定义文本视图中大写第一个字母?

Android 如何在自定义文本视图中大写第一个字母?,android,textview,capitalize,Android,Textview,Capitalize,在自定义文本视图中,假设第一个字符是一个数字,那么下一个字符就是一个字符。如何在大量数字中找到第一个字符。在布局xml中,添加android:capitalize=“句子” String text = textView.getText().toString(); for(Character c : text){ if(c.isLetter){ //First letter found break; } android:capitalize的选项如下: android:ca

在自定义文本视图中,假设第一个字符是一个数字,那么下一个字符就是一个字符。如何在大量数字中找到第一个字符。

在布局xml中,添加android:capitalize=“句子”

String text = textView.getText().toString();
for(Character c : text){
   if(c.isLetter){
     //First letter found
   break;
}
android:capitalize的选项如下:

android:capitalize=“none”:不会自动将任何内容大写

android:capitalize=“句子”:将每个句子的第一个单词大写

android:capitalize=“words”:将每个单词的第一个字母大写

android:capitalize=“characters”:将每个字符大写

更新:

由于android:capitalize已被弃用,现在需要使用:


android:inputType=“textCapWords”

您正在查找TextView的xml布局文件中的inputType参数。基本上,在您希望以驼峰格式设置TextView的布局文件中,添加以下行:

android:inputType = "textCapWords"
//This would capitalise the first letter in every word.
如果您只希望将TextView中的第一个字母大写,请使用以下命令

android:inputType = "textCapSentences"
//This would capitalise the first letter in every sentence.
如果您有一个包含多个句子的textView,并且您只希望将textView中的第一个字母大写,我建议您使用代码执行此操作:

String[] words = input.getText().toString().split(" ");
StringBuilder sb = new StringBuilder();
if (words[0].length() > 0) {
    sb.append(Character.toUpperCase(words[0].charAt(0)) + words[0].subSequence(1, words[0].length()).toString().toLowerCase());
    for (int i = 1; i < words.length; i++) {
        sb.append(" ");
        sb.append(Character.toUpperCase(words[i].charAt(0)) + words[i].subSequence(1, words[i].length()).toString().toLowerCase());
    }
}
String titleCaseValue = sb.toString();
String[]words=input.getText().toString().split(“”);
StringBuilder sb=新的StringBuilder();
if(字[0].length()>0){
sb.append(Character.toUpperCase(words[0].charAt(0))+words[0].子序列(1,words[0].length()).toString().toLowerCase());
for(int i=1;i

希望这有帮助:)

通过拆分整个单词来尝试这种方法

String input= "sentence";
String output = input.substring(0, 1).toUpperCase() + input.substring(1);
textview.setText(output);
输出:
如果您使用Kotlin,您可以选择:

首字大写:

var str = "whaever your string is..."
str.capitalize()
// Whaever your string is...
每个单词大写

var str = "whaever your string is..."
val space = " "
val splitedStr = str.split(space)
str = splitedStr.joinToString (space){
    it.capitalize()
}
// Whaever Your String Is...

使用此函数传递字符串并返回大写字符串

public static String wordCapitalize(String words)
{

    String str = "";
    boolean isCap = false;

    for(int i = 0; i < words.length(); i++){

        if(isCap){
            str +=  words.toUpperCase().charAt(i);
        }else{
            if(i==0){
                str +=  words.toUpperCase().charAt(i);
            }else {
                str += words.toLowerCase().charAt(i);
            }
        }

        if(words.charAt(i)==' '){
            Utility.debug(1,TAG,"Value of  i : "+i+" : "+words.charAt(i)+" : true");
            isCap = true;
        }else{
            Utility.debug(1,TAG,"Value of  i : "+i+" : "+words.charAt(i)+" : false");
            isCap = false;
        }
    }
    Utility.debug(1,TAG,"Result : "+str);
    return str;
}
公共静态字符串字大写(字符串字)
{
字符串str=“”;
布尔值isCap=false;
for(int i=0;i
android:inputType=“…”的可能重复项对文本视图没有影响,只对使用键盘输入文本时的编辑文本有影响。