gpt4 book ai didi

java - '!'在 int 方法中被接受并且有两个不同的值 java

转载 作者:行者123 更新时间:2023-12-02 12:57:15 25 4
gpt4 key购买 nike

有人可以向我解释一下,我在 java 中的方法如何需要一个 int,但接受 '!'作为一个论点?更进一步,当我调试它时,但当我执行 System.out.println(Character.getNumericValue('!')); 时,它如何将其解释为 33它打印-1?

这是代码:

public abstract class Stuff {

public static char getCharacterFromNumber(int number) throws InvalidCharException {

if(number>=20) {
if (number <= 45) {
switch (number) {
case 20:
return 'a';
case 21:
return 'b';
case 22:
return 'c';
case 23:
return 'd';
case 24:
return 'e';

case 25:
return 'f';
case 26:
return 'g';
case 27:
return 'h';
case 28:
return 'i';
case 29:
return 'j';

case 30:
return 'k';
case 31:
return 'l';
case 32:
return 'm';
case 33:
return 'n';
case 34:
return 'o';

case 35:
return 'p';
case 36:
return 'q';
case 37:
return 'r';
case 38:
return 's';
case 39:
return 't';

case 40:
return 'u';
case 41:
return 'v';
case 42:
return 'w';
case 43:
return 'x';
case 44:
return 'y';
case 45:
return 'z';
}
}
}
throw new InvalidCharException();
}

public static void main(String [] args){
try {
System.out.println(Stuff.getCharacterFromNumber('!'));
} catch (InvalidCharException e) {
e.printStackTrace();
}
System.out.println(Character.getNumericValue('!'));
}
}

我已经搜索过,但没有发现任何与我的问题类似的内容,如果有人对标题有更好的想法,我会应用它:)

最佳答案

字 rune 字只不过是纯值,但具有不同的类型。 48 表示与 '0' 完全相同的值(尽管第一个值是 int 类型,并且第二个是 char 类型)。 49 也表示与 '1' 相同的值。这就是为什么 'a' + 1 将产生等于 'b' 的值。

您感到困惑的是为什么会这样:

System.out.println(Character.getNumericValue('!'));

打印-1。好吧,为了找出原因,让我们进入 java docs 。我们可以看到方法Character.getNumericValue:

Returns the int value that the specified character (Unicode code point) represents.

返回字符的 Unicode 值。如果您想查看代表字 rune 字 '!' 的数字,您可能需要这样做:

System.out.println((int)'!');

将打印:33

关于java - '!'在 int 方法中被接受并且有两个不同的值 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48571362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com