我已经看到了使用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?
任何帮助都将不胜感激。
答案 0 :(得分:13)
//当它等于&#39; - &#39;是什么意思?
每个字母和符号都是一个字符。您可以查看String的第一个字符并检查匹配。
在这种情况下,你会得到第一个字符并查看它是否为减号。此减号为(char) 45
,请参见下文
// char变量如何与
<
运算符进行比较?
在Java中,所有字符实际上都是16位无符号数。每个字符都有一个基于unicode的数字。例如'9'
是字符(char) 57
此比较适用于任何小于9
代码的字符,例如空间。
字符串的第一个字符为'a'
(char) 97
,因此(char) 97 < (char) 57
为假。
答案 1 :(得分:1)
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值。我不知道你为什么要检查ascii当量的c是否小于ascii等价于'9'。
如果你想得到任何字符的ascii值,那么你可以:
char character = 'c';
int ascii = character;
System.out.println(ascii);
答案 2 :(得分:0)
str.charAt(0) == '-';
返回一个布尔值,在本例中为false
。
if (c < '9')
将'3'的ascii值与'9'的ascii值进行比较,并再次返回布尔值。
答案 3 :(得分:0)
org.opensaml.saml.saml2.core.Response samlResponse = responseBuilder.buildObject();
// Compute and add SignatureValue element to Signature
XMLObjectProviderRegistrySupport.getMarshallerFactory()
.getMarshaller(samlResponse).marshall(samlResponse);
Signer.signObject(signature);
如果第0点的字符是' - ',则该语句返回true,否则返回false。
str.charAt(0) == '-'
这将c的ascii值与ascii值'9'进行比较,在这种情况下分别为99和57.
答案 4 :(得分:0)
字符是Java中的原始类型,这意味着它不是一个复杂的对象。因此,每次在EntityManagerFactory
之间进行比较时,您都会直接比较它们的值。
根据原始的unicode规范定义Java字符,该规范为每个字符赋予16位值。这些是Java在您比较chars
或c>'3'
之类的内容时所比较的值。