不知道我是否错过了一些非常明显的东西。我知道肯定我的String
如下:Java(Android) - 无法检测到字符串的第一个字符?
1This is a test message
我想检测的第一个字符是否为“1”,所以这里是我的一些代码:
//This outputs '1'
Toast noCmd = Toast.makeText(Play.this, decodedMessage.substring(0,1), Toast.LENGTH_SHORT);
noCmd.show();
if (decodedMessage.charAt(0) == 1) {
noCmd = Toast.makeText(Play.this, "This should show up", Toast.LENGTH_SHORT);
noCmd.show();
noCmd = Toast.makeText(Play.this, finalMessage + " from " + sender, Toast.LENGTH_SHORT);
noCmd.show();
}
if (decodedMessage.substring(0,1) == "1") {
noCmd = Toast.makeText(Play.this, "This should show up", Toast.LENGTH_SHORT);
noCmd.show();
noCmd = Toast.makeText(Play.this, finalMessage + " from " + sender, Toast.LENGTH_SHORT);
noCmd.show();
}
,你可以看,我试着用两种方法让if语句里面的吐司出现。奇怪的是,当代码运行时,只显示顶部(无条件)的吐司。
任何想法?
谢谢!接受这个答案,因为它是第一个,也是最全面的(对于其他读者)。我知道有什么问题......我没有使用.equals()... – 2014-10-04 19:55:32
@ingredient_mosteroid不客气:) – 2014-10-04 19:56:15
很好的解释,但Java使用Unicode,而不是ASCII。 Java的'char'数据类型存储一个UTF-16编码单元,其中一个或两个编码Unicode编码点。一个基本码点和零个或多个组合码点形成一个字形,这是人们在使用术语“字符”时所想到的。数字1被编码为一个“char”,因此可以被写为char文字'1'。 – 2014-10-05 02:36:09