String

치로·2024년 7월 24일

예시 코드

package string;

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("----------------------");
		
		// 1. 문자열 길이를 조회
		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("----------------------");
		
		// 2. 특정 문자열이 처음으로 나타나는 위치를 조회
		int str1_pos = str1.indexOf(" ");
		int str2_pos = str2.indexOf("a");
		System.out.println("str1_pos : " + str1_pos);
		System.out.println("str2_pos : " + str2_pos);
		System.out.println("----------------------");
		
		// 3. 특정 문자열이 나타나는 마지막 위치를 조회
		int str1_last_pos = str1.lastIndexOf(" ");
		int str2_last_pos = str2.lastIndexOf("a");
		System.out.println("str1_last_pos : " + str1_last_pos);
		System.out.println("str2_last_pos : " + str2_last_pos);
		System.out.println("----------------------");
		
		// 4. A를 B로 변경하기 
		// 첫번째 파라미터는 변경 대상 두 번째는 어떤 식으로 변경할 건지
		String new_str1 = str1.replace(" ", "-");
		String new_str2 = str1.replace("a", "A");
		System.out.println("new_str1 : " + new_str1);
		System.out.println("new_str2 : " + new_str2);
		System.out.println("----------------------");
		
		// 5. 대소문자 변경
		String upper = new_str2.toUpperCase();
		String lower = new_str2.toLowerCase();
		System.out.println("upper : " + upper);
		System.out.println("lower : " + lower);
		System.out.println("----------------------");
		
		// 6. 문자열의 앞 뒤 공백 제거
		String input = "   enjoy jaiva   programming  ";
		String output = input.trim();
		// 중간 공백 제게
		String output2 = input.replace(" ", "");
		System.out.println("input : " + input);
		System.out.println("output : " + output);
		System.out.println("output2 : " + output2);
		System.out.println("----------------------");
		
		// 문자열 비교
		boolean isSame = str1.equals(str2);
		if (isSame ) {
			System.out.println("같다!");
		} else {
			System.out.println("다르다.");
		}
		System.out.println("----------------------");
		
		// 8. 문자열 자르기
		// 첫번째 파람 : 시작 위치, 두번째 파람 : 끝 위치
		System.out.println(str1);
		String sub_str1 = str1.substring(0, 2);
		System.out.println("sub_str1 : " + sub_str1);
		// 두 번째 파람이 없는 경우 끝까지 자른다
		String sub_str2 = str1.substring(3);
		System.out.println("sub_str2 : " + sub_str2);
		System.out.println("----------------------");
		
		// 9. 형식에 따른 문자열 출력을 위한 static 메서드 사용
		/*
		 * %d : 정수
		 * %s : 문자
		 * %f : float형 소수
		 * %3d : 숫자를 3자리로 맞춰서 출력, 
		 * 		자릿수가 맞지 않으면 앞에 공백 출력
		 * %03d : 자릿수가 맞지 않으면 0을 출력
		 * %3s : 문자열을 3자리로 맞춰서 출력,
		 * 		자릿수가 맞지 않으면 앞에 공백 출력
		 * 		(%03s와 같은 형식은 사용 불가)
		 */
		int yy = 2024;
		int mm = 7;
		int dd = 4;
		String gender = "남자";
		String result = String.format("%d년 %02d월 %02d일 %s", yy, mm, dd, gender);
		System.out.println(result);
		System.out.println("----------------------");
		
		// 10. 주어진 글자를 기준으로 잘라내어서 배열로 변환
		String src = "Java/DBMS/JSP/SpringBoot/React";
		String[] data = src.split("/");
		for (int i=0; i<data.length; i++ ) {
			System.out.println(data[i]);
		}
	}

}
package string;

public class Main02 {

	public static void main(String[] args) {
		// 이메일 주소에서 아이디와 도메인을 구별
		// split 사용 금지
		// student@java.com -> 변수로 선언
		// 아이디 : student
		// 도메인 : java.com
		// 각각 출력
		String email = "student123@java.com";
		
		// @가 나타나는 위치 얻기
		int s = email.indexOf("@");
		
		// 처음부터 @가 나타나는 위치까지 자르기 -> 아이디
		String email_id = email.substring(0, s);
		
		// @가 나타나는 위치 다음부터 끝까지 자르기 -> 도메인
		String email_domain = email.substring(s+1);
		
		System.out.println(email_id);
		System.out.println(email_domain);
	}

}
package string;

public class Main03 {

	public static void main(String[] args) {
		// 주민번호에서 생년원일을 추츨
		// 800501 1234567 -> 1980년 05월 01일 남자
		// 태어난 년도 판별 : 1 or 2 -> 19~
		//					3 or 4 -> 20~
		// 성별 판단 : 1 or 3 -> 남자
		//			2 or 4 -> 여자
		
		String jumin = "020507478915";
		
		// 주민번호를 년, 월, 일 단위로 각 두 글자씩 자르기
		String yy = jumin.substring(0, 2);
		String mm = jumin.substring(2, 4);
		String dd = jumin.substring(4, 6);

		// 뒷 부분 첫 번쨰 글자는 성별 코드이므로 별도로 추출
		String gender_code = jumin.substring(6,7);
		
		// 태어난 년도의 판별
		if (gender_code.equals("1") || gender_code.equals("2")) {
			yy = "19" + yy;
		} else {
			yy = "20" + yy;
		}
		
		// 기본 성별은 남자
		String gender = "남자";
		
		// 뒷 부분 성별 코드가 2, 4일 경우 "여자"
		if (gender_code.equals("2") || gender_code.equals("4")) {
			gender = "여자";
		}
		// 형식에 맞춘 내용 출력
		// String.format + System.out.println
		System.out.printf("%s년 %s월 %s일 %s", yy, mm, dd, gender);
	}

}
package string;

public class Main04 {

	public static void main(String[] args) {
		// 기본 자료형을 문자열로 변환하는 방법
		int a = 1;
		float b = 3.14f;
		boolean c = true;
		double d = 123.4567;
		long e = 1234567890L;
		
		/*
		 * static 메서드 valueOF
		 * 
		 * 기본 데이터형을 String 객체로 변화해 주는 메서드
		 * 다양한 자료형에 대하여 오버로드 되어 있음
		 */
		String str1 = String.valueOf(a);
		String str2 = String.valueOf(b);
		String str3 = String.valueOf(c);
		String str4 = String.valueOf(d);
		
		// 문자열로 변환하는 가장 손쉬운 방법은 공백을 더하는 것
		String str5 = "" + e;
		
		System.out.println(str1 instanceof String);
		System.out.println(str2 instanceof String);
		System.out.println(str3 instanceof String);
		System.out.println(str4 instanceof String);
		System.out.println(str5 instanceof String);
		
	}

}
package string;

public class Main05 {

	public static void main(String[] args) {
		// D:/photo/2024/travel/food.jpg 라는 파일이 있다
		// 이 파일의 경로를 data라는 객체로 생성한 뒤에 출력
		// split 사용 금지
		// 파일 이름 : food
		// 확장자 : jpg
		// 폴더명 : D:/photo/2024/travel
		
		String data = "D:/photo/2024/travel/food.jpg";
		
		// 파일 이릉 추출
		String name = data.substring(data.lastIndexOf("/") + 1, data.lastIndexOf("."));
		System.out.println("파일 이름 : " + name);
		
		// 확장자
		String ext = data.substring(data.lastIndexOf(".")+1);
		System.out.println("확장자 : " + ext);
		
		// 소스 파일의 폴더이름 추출
		System.out.println("폴더명 : " + data.substring(0, data.lastIndexOf("/")));
	}

}
package string;

public class Main06 {

	public static void main(String[] args) {
		/*
		 * 이스케이프 문자
		 * ------------
		 * 프로그램의 문자열 안에 포함될 수 있는 특수 문자
		 * ex) 문자열 안에서 쌍따옴표를 표현하고자 하는 경우 사용
		 */
		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개의 댓글