java 解惑3 string 字串

2021-06-29 00:04:55 字數 1201 閱讀 2509

system.out.print("h"+"a");

system.out.print('h'+'a');

這兩個程式輸出的都是「ha」嗎?

不是第乙個是「ha」,第二個是"169"

因為第二個『h』和『a』都不是string,所以「+」執行的是加法而不是字串連線。

如果也要活得「ha」可以1.預置乙個空字串2.使用stirng.valueof()3.使用stringbuffer

string letters = "abc";

char numbers = ;

system.out.println(letters + " easy as " + numbers);

這個得到的也不是「letters easy as 123」

雖然system.out.println(numbers) 會得到123

雖然string.valueof(numbers)會得到123

但是numbers.tostring卻不是。

或許char型別可能應該複寫tostring()

final string pig = "length: 10";

final string dog = "length: " + pig.length();

system.out. println("animals are equal: "+ pig == dog);

system.out.println("animals are equal: "+ (pig == dog));

system.out.println("animals are equal: "+pig.equals(dog));

看這三個system.out.println()語句分別會獲得什麼結果。

第乙個「false」.因為"+"的優先順序要大於「==」,所以實際判定的是「animals are equal length: 10」=="length: 10"

第二個「animals are equal :false」因為==判斷的是左右兩邊的物件引用是否引用到了相同的物件上。

如果pig和dog都是字串常量的話,那麼他們是同乙個引用,但是不是。

第三個:"animals are equal: true"。equals()方法是比較物件引用時應該用的方法,除非你比較的不是物件的值而是

隊形的標識。

3 string 和 String的區別

1 string型別是密封 sealed 型別,即從object物件中繼承而來。2 string例項實際就是乙個unicode字串 3 string型別的值可以是字串文字 4 string關鍵字是預定義類system.string的別名,所以我們可以這樣寫 string name fred or s...

String 類的實現(3)String類常用函式

1 2 include3 include4 include5 include 6 using namespace std 自己模擬實現的部分相關c string庫函式 8int my strlen const char p 9 17return count 18 19char my strcopy ...

筆記 3 String中常見API的使用 一

package com.tedu.string length 返回當前字串物件中字元的個數,實際上就是char型別陣列的長度 author wildmess public class strlengthdemo package com.tedu.string indexof string str 查...