将字符转换为大写

2022-08-31 12:19:15
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变量转换为大写。


答案 1

你可以使用 Character#toUpperCase() 来实现此目的。

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

然而,它有一些局限性,因为世界知道的字符比16位范围所能容纳的要多得多。另请参阅以下 javadoc 摘录:char

注意:此方法无法处理增进字符。若要支持所有 Unicode 字符(包括增补字符),请使用 toUpperCase(int) 方法。


答案 2

您可以尝试使用布尔运算进行以下转换,而不是使用现有的实用程序:

大写:

 char upperChar = 'l' & 0x5f

小写:

   char lowerChar = 'L' ^ 0x20

它是如何工作的:

二进制、十六进制和十进制表:

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

让我们以小lL转换为例:

二进制 AND 操作:(l & 0x5f)

l字符具有 ASCII 108,并且是二进制重构。01101100

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

类似地,Ll的转换:

二进制异或操作:(L ^ 0x20)

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

推荐