提问人:Satyam Mishra 提问时间:7/6/2023 更新时间:7/6/2023 访问量:54
java 中的字符数组实际上将什么存储为元素、char 或 unicode 值?
What does actually character array in java store as an element a char or a unicode value?
问:
char[] rotk = U.toCharArray();
for (int j = 0; j < rotk.length; j++) {
rotk[j]+=cipher;
if(rotk[j]>122)
{
rotk[j]=(char)(96+(rotk[j]-122));
}
}
如果字符存储在 char 数组中,那么在 if 语句中它如何与 122 进行比较,如果不是,那么为什么在此语句中我们再次将其类型转换为 char?rotk[j]=(char)(96+(rotk[j]-122));
请帮助我了解类型转换和存储在 char 数组中的元素的场景?
答: 暂无答案
评论
96+(rotk[j]-122
- Java 始终将表达式的类型转换为最高级别。在这里,这个表达式会产生一个 int,它可以存储比 char 多得多的值。它类似于错误 。这里很长,是 64 位,而我是 32 位,所以无法容纳它。所以你必须打字并说你理解并接受后果。同样,int 是 4 个字节,char 是 2 个字节。因此,您必须显式地进行类型转换long l = 5; int i = l;
l
if(rotk[j]>'z') rotk[j]-=26;
+= -= *=
char
,其值是代表 UTF-16 代码单元的 16 位无符号整数”。你了解什么是“代码单元”吗?在维基百科上查阅 UTF-16