web-dev-qa-db-ja.com

Textview xmlで各単語の最初の文字を大文字に変更する方法

xML自体でtext = "font roboto regular"Font Roboto Regularに変更する必要があります。

<TextView
   Android:layout_width="match_parent"
   Android:layout_height="wrap_content"
   Android:gravity="center"
   Android:textSize="18sp"
   Android:textColor="@Android:color/black"
   Android:fontFamily="roboto-regular"
   Android:text="font roboto regular"
   Android:inputType="textCapWords"
   Android:capitalize="words"/>
20
sree

このコードを使用できます。

String str = "font roboto regular";
String[] strArray = str.split(" ");
StringBuilder builder = new StringBuilder();
for (String s : strArray) {
     String cap = s.substring(0, 1).toUpperCase() + s.substring(1);
     builder.append(cap + " ");
}
TextView textView = (TextView) findViewById(R.id.textView);
textView.setText(builder.toString());
37
Chintan Bawa

kotlinこれを行う方法を探している人がいれば、コードは非常にシンプルで美しいものになります。

yourTextView.text = yourText.split(' ').joinToString(" ") { it.capitalize() }
26
Praveena

これを試して...

文字列内の各Wordの最初の文字を大文字に変換するメソッド。

 private String capitalize(String capString){
    StringBuffer capBuffer = new StringBuffer();
    Matcher capMatcher = Pattern.compile("([a-z])([a-z]*)", Pattern.CASE_INSENSITIVE).matcher(capString);
    while (capMatcher.find()){
        capMatcher.appendReplacement(capBuffer, capMatcher.group(1).toUpperCase() + capMatcher.group(2).toLowerCase());
    }

    return capMatcher.appendTail(capBuffer).toString();
}

使用法:

String chars = capitalize("hello dream world");
//textView.setText(chars);
System.out.println("Output: "+chars);

結果:

Output: Hello Dream World

KOTLIN

   val strArrayOBJ = "Your String".split(" ".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()
                val builder = StringBuilder()
                for (s in strArrayOBJ) {
                    val cap = s.substring(0, 1).toUpperCase() + s.substring(1)
                    builder.append("$cap ")
                }
txt_OBJ.text=builder.toString()
6
IntelliJ Amiya

既存の大文字をすべて消去し、受け入れられた回答が残した後のスペースを防ぐための受け入れられた回答の変更。

public static String capitalize(@NonNull String input) {

    String[] words = input.toLowerCase().split(" ");
    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < words.length; i++) {
        String Word = words[i];

        if (i > 0 && Word.length() > 0) {
            builder.append(" ");
        }

        String cap = Word.substring(0, 1).toUpperCase() + Word.substring(1);
        builder.append(cap);
    }
    return builder.toString();
}
5
Ankhwatcher

このメソッドを使用してプログラムで実行できます

public String wordFirstCap(String str)
{
    String[] words = str.trim().split(" ");
    StringBuilder ret = new StringBuilder();
    for(int i = 0; i < words.length; i++)
    {
        if(words[i].trim().length() > 0)
        {
            Log.e("words[i].trim",""+words[i].trim().charAt(0));
            ret.append(Character.toUpperCase(words[i].trim().charAt(0)));
            ret.append(words[i].trim().substring(1));
            if(i < words.length - 1) {
                ret.append(' ');
            }
        }
    }

    return ret.toString();
}

this を参照します(xmlで実行する場合)。

3
Ravi Rupareliya

最初の文字を大文字にする

Android:inputType="textCapWords"

文の最初の単語を大文字にする:

Android:inputType="textCapSentences"
1
Ali Nawaz

https://stackoverflow.com/a/1149869/27252

ACL WordUtilsをご覧ください。

WordUtils.capitalize( "your string")== "Your String"

1
saman shoja
Android:inputType="textCapWords"

これはTextViewでは機能しません。これはEditTextでのみ有効です。手動で行う必要があります。

capitalizeFully を使用して、各Wordを大文字で開始できます。

1
Gunaseelan

Android:capitalizeは非推奨です。

次の手順に従ってください:https://stackoverflow.com/a/31699306/440911

  1. Android Lollipop Deviceのホーム画面で[設定]のアイコンをタップします
  2. [設定]画面で、[個人]セクションまで下にスクロールし、[言語と入力]セクションをタップします。
  3. [言語と入力]セクションで、キーボード(現在のキーボードとしてマークされている)を選択します。
  4. 「設定」をタップします。
  5. 「自動-大文字」をタップして有効にします。

そして、それは動作するはずです。

そうでない場合は、Javaでそれを行います。

1
ʍѳђઽ૯ท

文の各Wordを大文字にするには、その特定のtextViewのxmlで以下の属性を使用します。

Android:inputType = "textCapWords"

0
Er Prajesh

使用できます

private String capitalize(final String line) {
   return Character.toUpperCase(line.charAt(0)) + line.substring(1);
}

これを参照してください 文字列内の各単語の最初の文字を大文字にする方法

0
Anjali Tripathi

別のアプローチは、StringTokenizerクラスを使用することです。次のメソッドは、文またはEditTextビュー内の任意の数の単語に対して機能します。これを使用して、アプリのフルネームフィールドを大文字にしました。

public String capWordFirstLetter(String fullname)
{
    String fname = "";
    String s2;
    StringTokenizer tokenizer = new StringTokenizer(fullname);
    while (tokenizer.hasMoreTokens())
    {
        s2 = tokenizer.nextToken().toLowerCase();
        if (fname.length() == 0)
            fname += s2.substring(0, 1).toUpperCase() + s2.substring(1);
        else
            fname += " "+s2.substring(0, 1).toUpperCase() + s2.substring(1);
    }

    return fname;
}
0
Cletus Ajibade