我正在做一個檢查字符串的任何字母是否在字母數(shù)組中的練習(xí)。到目前為止,這是我的代碼:func main() { one_point := []string {"A", "D", "F"} var message string = "AB" for _, value := range one_point{ for _, rune_message := range message { if (value == strconv.QuoteRune(rune_message)) { fmt.Printf("%s equal %s \n", value, strconv.QuoteRune(rune_message)) fmt.Printf("%s in the array\n", strconv.QuoteRune(rune_message)) fmt.Println("------------------------------") } else { fmt.Printf("%s not equal %s\n", value, strconv.QuoteRune(rune_message)) fmt.Printf("%s not in the array \n", strconv.QuoteRune(rune_message)) fmt.Println("------------------------------") } } }}結(jié)果如下:A not equal 'A''A' not in the array ------------------------------A not equal 'B''B' not in the array------------------------------D not equal 'A''A' not in the array------------------------------D not equal 'B''B' not in the array------------------------------F not equal 'A''A' not in the array------------------------------F not equal 'B''B' not in the array------------------------------從視覺上看,一個字符串有'而另一個沒有。我想問一下:那兩個有什么區(qū)別?如何修復(fù)我的代碼以使其正常工作?
2 回答

慕妹3146593
TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個贊
您可以從輸出中看到原因。A not equal 'A'
.
strconv.QuoteRune 將符文轉(zhuǎn)換為帶'
引號的字符串。它將“A”與“'A'”進(jìn)行比較,所以它不相等。如果您想在字符串中比較它們,那么您可以執(zhí)行if value == string(rune_message)
.
提示:
如果條件不應(yīng)該使用括號。
使用駱駝箱而不是蛇箱。

心有法竹
TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個贊
您正在將包含字母的字符串與帶引號的字符串進(jìn)行比較。你可以簡單地做:
one_point := []rune {'A', 'D', 'F'}
...
for _, rune_message := range message {
for _,value:=range one_point {
if rune_message==value {
...
}
}
}
- 2 回答
- 0 關(guān)注
- 118 瀏覽
添加回答
舉報
0/150
提交
取消