1. 程式人生 > >char型別變數中是否可以儲存一箇中文漢字

char型別變數中是否可以儲存一箇中文漢字

在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 你好"); } }