字串和多個char型別的字元相加比較問題

2021-08-25 09:13:18 字數 449 閱讀 6489

錯誤案例

【現象描述】表面看上去內容一樣的字串和單個字元拼接比對,結果永遠為false

【錯誤**】 "34".equals('3' + '4')

錯誤分析

當且僅當+操作符的運算元中至少有乙個是string型別時,才會執行字串連線操作;否則,執行加法。

如:在本例中'3' + '4'得到的結果是整型數值103,而不是字串"34"。

如果是字元'a' + 'b'得到的結果是a,b字元的ascii碼相加的整型數值。

根據這樣的情況,可以有幾種選擇:

1、 預置乙個空字串("" + 'a' + 'a')

2、 將第乙個數值用string.valueof()顯示地轉換成乙個字串(string.valueof('a') + 'a')

正確用法

"ab".equals("" + '3' + '4')

char 字串和char 字串的理解

一 char 字串 1.如何宣告乙個char 字串 你可以這樣 char str test str是乙個指標,存放在棧區,test 是乙個常量,存放在常量區,vs2017要求這句宣告前面必須加上const,因為它所指向的常量字串是不可更改的 delete str 還可以這樣 char str new...

字串陣列char 和字串指標char 的討論

相同點 1.char a 和char a在作為形參的時候完全相同。2.在初始化時,都可以使用常量字串,區別1.內容位址不同 char a abcd 此時 abcd 存放在常量區,然後在棧上分配記憶體給a,並指向 abcd 在常量區的首位址。對於指標本身a來說,它是可變的,允許修改,可以指向其他的位址...

字串char 和字串陣列char 的區別

字串char char str1 abcde 其實上面的char str1是字串常量,儲存在靜態儲存區,是唯讀的,也就是說它是const char str1 更好的表達它本身的意思。str1是乙個變數,代表的意思就是字串的第乙個字元的值 str1 可行 str1 2 f 不可行假如 char str...