【问题标题】:Java String/Char charAt() ComparisonJava String/Char charAt() 比较
【发布时间】:2017-02-26 09:46:10
【问题描述】:

我看到了您可以使用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?

任何帮助将不胜感激。

【问题讨论】:

  • “等于'-'是什么意思?”不是线索,只有那个代码的创建者可能知道...
  • "char 变量与&lt; 运算符相比如何?" 原语char 是一个numeric 类型,因此可以与@ 进行比较987654325@或&lt;

标签: java char comparison charat


【解决方案1】:

//等于'-'是什么意思?

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

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

// char 变量与&lt; 运算符相比如何?

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

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

【讨论】:

【解决方案2】:
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);

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

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

如果你想获取任意char的ascii值,那么你可以:

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

【讨论】:

    【解决方案3】:

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

    if (c &lt; '9') 比较 '3' 的 ascii 值和 '9' 的 ascii 值并再次返回布尔值。

    【讨论】:

      【解决方案4】:
      str.charAt(0) == '-'
      

      如果点 0 处的字符为“-”,则此语句返回 true,否则返回 false。

      if (c < '9')
      

      这会将 c 的 ascii 值与 '9' 的 ascii 值进行比较,在这种情况下分别为 99 和 57。

      【讨论】:

        【解决方案5】:

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

        Java 字符是根据原始的 unicode 规范定义的,它为每个字符赋予一个 16 位的值。当您比较 c&gt;'3'str.charAt(0) == '-' 之类的内容时,这些是 Java 正在比较的值。

        【讨论】:

          猜你喜欢
          • 2011-05-09
          • 2021-09-03
          • 1970-01-01
          • 1970-01-01
          • 2017-02-24
          • 2011-12-11
          • 2019-02-20
          • 2017-08-30
          相关资源
          最近更新 更多