web-dev-qa-db-ja.com

文字を大文字に変換する

String lower = Name.toLowerCase();
int a = Name.indexOf(" ",0);
String first = lower.substring(0, a);
String last = lower.substring(a+1);
char f = first.charAt(0);
char l = last.charAt(0);
System.out.println(l);

fおよびL変数を大文字に変換するにはどうすればよいですか。

70
shep

これには Character#toUpperCase() を使用できます。

char fUpper = Character.toUpperCase(f);
char lUpper = Character.toUpperCase(l);

ただし、16ビットcharの範囲に収まらないほど多くの文字を世界が認識しているため、いくつかの制限があります。次の javadoc の抜粋も参照してください。

注:このメソッドは 補足文字 を処理できません。補助文字を含むすべてのUnicode文字をサポートするには、 toUpperCase(int) メソッドを使用します。

135
BalusC

既存のユーティリティを使用する代わりに、ブール演算を使用して以下の変換を試すことができます。

大文字へ:

 char upperChar = 'l' & 0x5f

小文字の場合:

   char lowerChar = 'L' ^ 0x20

仕組み:

2進、16進、および10進表:

------------------------------------------
| Binary   |   Hexadecimal     | Decimal |
-----------------------------------------
| 1011111  |    0x5f           |  95     |
------------------------------------------
| 100000   |    0x20           |  32     |
------------------------------------------

小さなlからLへの変換の例を見てみましょう:

バイナリAND演算:(l & 0x5f)

l文字にはASCII 108があり、01101100はバイナリ表現です。

   1101100
&  1011111
-----------
   1001100 = 76 in decimal which is **ASCII** code of L

同様にLからlへの変換:

バイナリXOR操作:(L ^ 0x20)

   1001100
^  0100000
-----------
   1101100 = 108 in decimal which is **ASCII** code of l
25
Rahul Sharma

Java.lang.Characterクラスを見てください。これは、文字を変換またはテストするための多くの便利なメソッドを提供します。

17
Andreas_D
f = Character.toUpperCase(f);
l = Character.toUpperCase(l);
13
DaveJohnston
System.out.println(first.substring(0,1).toUpperCase()); 
System.out.println(last.substring(0,1).toUpperCase());
4
Likhith Kumar

プロジェクトにApache commons lang jarを含める場合、最も簡単な解決策は次のとおりです。

WordUtils.capitalize(Name)

あなたのためにすべての汚い仕事を引き受けます。 javadocを参照してください こちら

または、capitalizeFully(String)メソッドもあります。このメソッドは、残りの文字も小文字にします。

2
Asaf

文字は小文字であることがわかっているので、対応するASCII値を減算して大文字にすることができます。

char a = 'a';
a -= 32;
System.out.println("a is " + a); //a is A

参照用の ASCIIテーブル

2
Burrito

.toUpperCase()は、文字列変数に直接適用するか、テキストフィールドの属性として適用できます。例:-

String str;
TextView txt;

str.toUpperCase();// will change it to all upper case OR
txt.append(str.toUpperCase());
txt.setText(str.toUpperCase());
2

区切り文字としてスペースを使用して、文の各単語の最初と最後の文字を大文字にしようとしていると思います。

StringBuffer:で実行できます

public static String toFirstLastCharUpperAll(String string){
    StringBuffer sb=new StringBuffer(string);
        for(int i=0;i<sb.length();i++)
            if(i==0 || sb.charAt(i-1)==' ' //for first character of string/each Word
                || i==sb.length()-1 || sb.charAt(i+1)==' ') //for last character of string/each Word
                sb.setCharAt(i, Character.toUpperCase(sb.charAt(i)));
     return sb.toString();
}
0
Praveen