Java String Class에 대한 이해

박현우·2024년 1월 5일

public class Main01 {

public static void main(String[] args) {
	// 객체생성 방법
	String str1 = "자바 programming";
	String str2 = new String("Java");
	System.out.println("str1 : " + str1);
	System.out.println("str2 : " + str2);
	System.out.println("------------------");
    ->
    str1 : 자바 programming
	str2 : Java
	
	// 문자열의 길이를 조회
	int str1_len = str1.length();
	int str2_len = str2.length();
	System.out.println("str1_len : " + str1_len);
	System.out.println("str2_len : " + str2_len);
	System.out.println("------------------");
    ->
    str1_len : 14
	str2_len : 4
	
	// 특정 문자열이 처음으로 나타나는 위치를 조회
	int str1_pos = str1.indexOf(" ");
	int str2_pos = str1.indexOf("a");
	System.out.println("str1_pos : " + str1_pos);
	System.out.println("str2_pos : " + str2_pos);
	System.out.println("------------------");
    ->
    str1_pos : 2
	str2_pos : 8
	
	// A를 B로 변경하기
	String new_str1 = str1.replace(" ", "-");
	String new_str2 = str2.replace("a", "A");
	System.out.println("new_str1 : " + new_str1);
	System.out.println("new_str2 : " + new_str2);
	System.out.println("------------------");
    ->
    new_str1 : 자바-programming
	new_str2 : JAvA
	
	// 대소문자
	String upper = new_str2.toUpperCase();
	String lower = new_str2.toLowerCase();
	System.out.println("new_str2: " + new_str2);
	System.out.println("upper : "+  upper);
	System.out.println("lower : "+  lower);
	System.out.println("------------------");
    ->
    new_str2: JAvA
	upper : JAVA
	lower : java
	
	// 문자열 앞뒤 공백 제거
	String input = "   enjoy java  programming  ";
	String output = input.trim();
	System.out.println("input : " + input);
	System.out.println("output : " + output);
	->
    input :    enjoy java  programming  
	output : enjoy java  programming
	output2 : enjoyjavaprogramming
	
	
}
	// 문자열 비교
	//	str1 == str2  // 이건 주소값을 비교하는 것이라 부적절
	str1.equals(str2) ;  
	boolean isSam = str1.equals(str2);
	if(isSam) {
		System.out.println("같다");
		
	} else {
		System.out.println("다르다");
	}
	System.out.println("------------------");
    -> 다르다
	
	// 문자열 자르기
	// - 첫번째 파라미터 : 시작위치
	// - 두번째 파라미터 : 끝 위치
	String sub_str1 = str1.substring(0, 2);
	System.out.println("str1 : " + str1);
	System.out.println("sub_str1 : " + sub_str1);
    ->
    str1 : 자바 programming
	sub_str1 : 자바
	
	
	// 두번째 파라미터가 없는 경우, 끝까지 자른다.
	String sub_str2 = str1.substring(3);
	System.out.println("sub_str2 : " + sub_str2);
	System.out.println("------------------");
    ->
    sub_str2 : programming
	

형식에 따른 문자열 출력을 위한 static 메서드 사용
/*
- %d : 정수
- %s : 문자
- %f : float형 소수
- %3d: 숫자를 3자리로 맞춰서 출력.
자릿수가 맞지 않으면, 앞에 공백을 출력
- %03d: 자릿수가 맞지 않으면, 0을 출력
- %3s : 문자열을 3자리로 맞춰서 출력,
자릿수가 맞지 않으면 앞에 공백 출력
(%03s와 같은 형식을 사용불가)
/

	int yy = 2024;
	int mm = 1;
	int dd = 5;
	String gender = "남성";
	String result = String.format("%d년 %02d월 %02d일 %s", yy, mm, dd, gender);
	System.out.println(result);
	System.out.println("------------------");
    ->
    2024년 01월 05일 남성
	
	// 주어진 글자를 기준으로 잘라내어서 배열로 변환
	String src = "C++/Java/C#/Javascript/DB";
	String[] data = src.split("/");
	for (int i = 0; i <data.length; i++) {
		System.out.println(data[i]);
	}
    ->
    C++
	Java
	C#
  	Javascript
	DB

이스케이프 문자
프로그램의 문자열 안에 포함될 수 있는 특수 문자.
ex) 문자열 안에서 쌍따옴표를 표현하고자 하는 경우 사용.

	public static void main(String[] args) {
	String src = "JAVA";
	
	// 문자열 안에 쌍따옴표를 포함시키기
	System.out.println("\""+ src + "\"");
	System.out.println("-------------------");
	
	// 문자열 안에 홑따옴표 포함시키기
	System.out.println("\'" + src + "\'");
	System.out.println("-------------------");
	
	// 줄바꿈 문자
	System.out.println("\n" + src);
	System.out.println("-------------------");
	
	// 탭키에 해당하는 문자
	System.out.println("\t" + src);
	
	
	
	
}

0개의 댓글