将字符转换为大写
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变量转换为大写。
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位范围所能容纳的要多得多。另请参阅以下 javadoc 摘录:char
注意:此方法无法处理增进字符。若要支持所有 Unicode 字符(包括增补字符),请使用
toUpperCase(int)
方法。
您可以尝试使用布尔运算进行以下转换,而不是使用现有的实用程序:
大写:
char upperChar = 'l' & 0x5f
小写:
char lowerChar = 'L' ^ 0x20
它是如何工作的:
二进制、十六进制和十进制表:
------------------------------------------
| 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
的转换:
二进制异或操作:(L ^ 0x20)
1001100
^ 0100000
-----------
1101100 = 108 in decimal which is **ASCII** code of l