不知道我是否錯過了一些非常明顯的東西。我知道肯定我的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