char型別變數中是否可以儲存一箇中文漢字
阿新 • • 發佈:2018-12-02
在Java語言中,預設使用的Unicode編碼方式,即每個字元佔兩個位元組,因此可以用來儲存中文。雖然String是由char所組成的,但是它採用了一種更加靈活的方式來儲存,即英文佔用一個字元,中文佔用兩個字元,採用這種儲存方式的一個重要作用就是可以減少所需的儲存空間,提高儲存效率。
public class Test {
public static void getLen(String str) {
System.out.println(str + "長度:"+ str.length()+ " 所佔位元組數:"+str. getBytes().length) ;
}
public static void main(String[] args) {
String s1 = "Hello";
String s2 = "你好";
getLen(s1);
getLen(s2);
}
}
//Hello長度:5 所佔位元組數:5
//你好長度:2 所佔位元組數:4
擴充套件:判斷一個字串中是否包含中文字元
/**
* getBytes(),使用平臺的預設字符集將這個字串編碼為一個位元組序列,將結果儲存到一個新的位元組陣列中。
* 當此字串不能在預設字符集中編碼時,此方法的行為是未指定的。java.nio.charset。當需要對編碼過程進行更多控制時,
* 應該使用CharsetEncoder類。
*/
public class Test {
public static void judgeCharactor(String str) {
// 判斷是否存在中文字元
if (str.getBytes().length == str.length()) {
System.out.println("無漢字");
} else {
System.out.println("有漢字");
}
}
public static void main(String[] args) {
new Test().judgeCharactor("hello");
new Test().judgeCharactor("hello 你好");
}
}