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変数を大文字に変換するにはどうすればよいですか。
これに使用できますCharacter#toUpperCase()
。
char fUpper = Character.toUpperCase(f);
char lUpper = Character.toUpperCase(l);
ただし、世界は16ビット範囲に収まるよりもはるかに多くの文字を認識しているため、いくつかの制限がありchar
ます。次のjavadocの抜粋も参照してください。
注:このメソッドは 補足文字を処理できません。補助文字を含むすべてのUnicode文字をサポートするには、この
toUpperCase(int)
メソッドを使用します。
既存のユーティリティを使用する代わりに、ブール演算を使用して以下の変換を試すことができます。
大文字に:
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
tol
変換:
バイナリ XOR 演算:(L ^ 0x20)
1001100
^ 0100000
-----------
1101100 = 108 in decimal which is **ASCII** code of l
クラスを見てくださいjava.lang.Character
、それは文字を変換またはテストするための多くの便利なメソッドを提供します。
f = Character.toUpperCase(f);
l = Character.toUpperCase(l);
System.out.println(first.substring(0,1).toUpperCase());
System.out.println(last.substring(0,1).toUpperCase());
文字が小文字であることがわかっているので、対応する ASCII 値を減算して大文字にすることができます。
char a = 'a';
a -= 32;
System.out.println("a is " + a); //a is A
参照用のASCII テーブルを次に示します。
プロジェクトにApache commons lang jarを含める場合、最も簡単な解決策は次のとおりです。
WordUtils.capitalize(Name)
すべての面倒な作業を処理します。ここでJavadocを参照してください
または、残りの文字を小文字にする capitalizeFully(String) メソッドもあります。
あなたの場合の最も簡単な解決策-最初の行を変更し、正反対のことをさせます:
String lower = Name.toUpperCase ();
もちろん、名前も変更する価値があります。