Java String/Char charAt() 比较

Java String/Char charAt() Comparison

我看到了可以使用 charAt() 方法进行的各种比较。

不过,有几个我真的看不懂。

String str = "asdf";
str.charAt(0) == '-'; // What does it mean when it's equal to '-'?


char c = '3';
if (c < '9') // How are char variables compared with the `<` operator?

如有任何帮助,我们将不胜感激。

str.charAt(0) == '-'; returns 一个布尔值,在本例中为 false.

if (c < '9') 将“3”的 ascii 值与“9”的 ascii 值进行比较,并再次 return 布尔值。

// What does it mean when it's equal to '-'?

每个字母和符号都是一个字符。您可以查看字符串的第一个字符并检查是否匹配。

在这种情况下,您获取第一个字符并查看它是否是减号字符。这个减号是(char) 45见下文

// How are char variables compared with the < operator?

在Java中,所有字符实际上都是16位无符号数。每个字符都有一个基于它的 unicode 的数字。例如'9' 是字符 (char) 57 此比较适用于任何小于 9 代码的字符,例如space.

字符串的第一个字符是 'a',即 (char) 97,所以 (char) 97 < (char) 57 是假的。

str.charAt(0) == '-'

如果点 0 处的字符为“-”,则此语句returns为真,否则为假。

if (c < '9')

这会将 c 的 ascii 值与 '9' 的 ascii 值进行比较,在本例中分别为 99 和 57。

字符在Java中是原始类型,这意味着它不是一个复杂的对象。因此,每次您在 chars 之间进行比较时,您都是在直接比较它们的值。

Java 字符是根据原始 unicode 规范定义的,它赋予每个字符一个 16 位的值。当您比较 c>'3'str.charAt(0) == '-'.

时,这些是 Java 正在比较的值
String str = "asdf";
String output = " ";
if(str.charAt(0) == '-'){
  // What does it mean when it's equal to '-'?
  output= "- exists in the first index of the String";
}
else {
    output="- doesn't exists in the first index of the String"; 
}
System.out.println(output);

它检查索引 0 中是否存在该字符,这是一个比较。

至于if (c < '9'),比较c和9的ascii值。我不知道你为什么要检查 c 的 ascii 等效值是否小于 '9' 的 ascii 等效值。

如果你想获取任何字符的ascii值,那么你可以:

char character = 'c';
int ascii = character;
System.out.println(ascii);