如何将自定义textview中的第一个字母大写?

时间:2016-08-19 13:56:59

标签: android textview capitalize

在自定义TextView中,假设第一个字符为数字,则下一个字符为字符。如何找到第一个字符的数字。

6 个答案:

答案 0 :(得分:6)

如果您使用的是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...

答案 1 :(得分:4)

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

android:capitalize的选项如下:

android:capitalize =" none" :它不会自动将任何内容资本化。

android:capitalize ="句子" :这将使每个句子的第一个单词大写。

android:capitalize ="单词" :这会将每个单词的第一个字母大写。

android:capitalize ="字符" :这会占用每个角色。

<强>更新

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

<强>机器人:的inputType =&#34; textCapWords&#34;

答案 2 :(得分:3)

通过拆分整个单词

来尝试此方法
String input= "sentence";
String output = input.substring(0, 1).toUpperCase() + input.substring(1);
textview.setText(output);

输出: 句子

答案 3 :(得分:1)

您正在为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();

希望这会有所帮助:)

答案 4 :(得分:0)

String text = textView.getText().toString();
for(Character c : text){
   if(c.isLetter){
     //First letter found
   break;
}

答案 5 :(得分:0)

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

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;
}