Java String/Char charAt() 比较

Posted

技术标签:

【中文标题】Java String/Char charAt() 比较【英文标题】:Java String/Char charAt() Comparison 【发布时间】: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; 【参考方案1】:

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

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

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

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

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

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

【讨论】:

这是字符编码的基础。 en.wikipedia.org/wiki/Character_encoding上面引用的定义是使用ASCII字符编码。【参考方案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 正在比较的值。

【讨论】:

以上是关于Java String/Char charAt() 比较的主要内容,如果未能解决你的问题,请参考以下文章

类型转换 String——》Char OR Char ——》String

常用API

String

java char[]转string 使用new String(char[])不能使用toSting()

java [Java] esacpe正则表达式特殊字符#tags:regex,string,char

Java charAt() 方法