문자열(String)잡담 학습 노트

3755 단어 C++cF#C#
1.자바 에서 하나의 char 는 2 개의 바이트(byte)이 고 하나의 중국어 한 자 는 하나의 문자 이자 2 개의 바이트 입 니 다.영어 자 모 는 모두 하나의 바이트 이기 때문에 하나의 byte 에 저장 할 수 있 지만 한 자 는 할 수 없다.char:16,byte:8)。
 
2.char 형식
public class ChineseTest1 {
	public static void main(String[] args) {
		char a=' ';
		char b=' ';
		byte c='a';
		byte d='b';
		char e='e';
		char f='f';
		String w="a";
		System.out.println(a);
		System.out.println(a+b);
		System.out.println(w+a);
		System.out.println(a+c);
		System.out.println("    "+a+b);
		System.out.println();
		/*System.out.println("fewg"+a+b);
		System.out.println(a+e);
		System.out.println(c+"fewf");*/
	}
}

    실행 결과:
  
 
42282
a 
20110
      

    결론: (1)char 형식 이 단독,"+"문자열 로 출력 될 때 char 의 값 이 중국어 이면 중국 어 를 출력 합 니 다.
              (2)char 형식 이"+"로 char 형식 이나 byte 형식 으로 출력 할 때 ASCII 코드 값 을 출력 하고 추가 합 니 다.
 
3.byte 형식
public class ChineseTest1 {
	public static void main(String[] args) {
		char a=' ';
		byte c='a';
		byte d='b';
		System.out.println(c);
		System.out.println(a+c);
		System.out.println(c+d);
		System.out.println(c+"fewf");
	}
}

  실행 결과:
97
20110
195
97fewf

   결론:즉,byte 가 단독 출력 이 든 char,String 형식 과 함께 출력 이 든 byte 유형 은 모두 ASCII 코드 값 을 출력 합 니 다.
 
4.반전 문자열
public class StringReverse {
	public static void main(String[] args) {
		String str = "A quick brown fox jumps over the lazy dog.";
		StringBuffer s = new StringBuffer(str);
		s = s.reverse();
		System.out.println(s);
	}
}

    실행 결과:
   
.god yzal eht revo spmuj xof nworb kciuq A

 
5.문자 인 코딩
   (1)JAVA 가 채택 한 인 코딩 방안 은 UTF-16BE 다.
public class EncodeTest {
	public static void main(String[] args) {
		String s="str  ";
			try {
				String a=new String(s.getBytes(),"UTF-8");//   utf-8  
				int c=s.getBytes("GBK").length;//   utf-8       
				System.out.println(c);
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
	}
}

   실행 결과:
7

 
6.한자 인지 아 닌 지 판단
public class EncodeTest2 {
 public static void main(String[] args) {
  String s="str  ";
  System.out.println(s.charAt(0));
  System.out.println(s.charAt(1));
  System.out.println(s.charAt(2));
  System.out.println(s.charAt(3));
  System.out.println(s.charAt(4));
  byte[] k=s.getBytes();
  byte[] b=new byte[5];
  System.out.println(k.length+"   ");
  for(int i=0;i<k.length;i++){
   System.out.println(" "+(i+1)+"      "+k[i]);
  }
  System.arraycopy(k, 0, b, 0, 4);//  4   
  System.out.println(new String(b));
 }
}

 
7.
public class EncodeTest2 {
	public static void main(String[] args) {
		String s="str  ";
		System.out.println(s.charAt(0));
		System.out.println(s.charAt(1));
		System.out.println(s.charAt(2));
		System.out.println(s.charAt(3));
		System.out.println(s.charAt(4));
		byte[] k=s.getBytes();
		byte[] b=new byte[5];
		System.out.println(k.length+"   ");
		for(int i=0;i<k.length;i++){
			System.out.println(" "+i+"      "+k[i]);
		}
		System.arraycopy(k, 0, b, 0, 4);//  4   
		System.out.println(new String(b));
	}
}

    실행 결과:
s
t
r
 
 
7   
 1      115
 2      116
 3      114
 4      -42
 5      -48
 6      -71
 7      -6
str?

좋은 웹페이지 즐겨찾기