String

9mond·2023년 7월 13일
0
post-thumbnail
post-custom-banner

1. 객체 생성

public static void main(String[] args) {
		String str1 = "자바 Programming";
		String str2 =  new String("Java");
		System.out.println("str1 : " + str1);
		System.out.println("str2 : " + str2);
        
  결과 : 
  		str1 : 자바 Programming
		str2 : Java
		str1_len : 14
		str2_len : 4      

2. 문자열의 길이 조회

int str1_len = str1.length();
int str2_len = str2.length();
	System.out.println("str1_len : " + str1_len);	// 넘버링은 0부터
	System.out.println("str2_len : " + str2_len);
 
 결과 :
		str1_pos : 2
		str2_pos : 1

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);
 
 결과 :
		str1_last_pos : 2
		str2_last_pos : 3

4. 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);

결과 :
		new_str1 : 자바-Programming
		new_str2 : JAvA
 

5. 대소문자 변경

String upper = new_str2.toLowerCase();
String lower = new_str2.toUpperCase();
	System.out.println("upper : " + upper);
	System.out.println("lower : " + lower);

결과 :
		upper : java
		lower : JAVA
 

6. 문자열 앞뒤 공백 제거

String input = "           enjoy java programming    ";
String output = input.trim();
String output2 = input.replace(" ", "");
	System.out.println("input : " + input);
	System.out.println("output : " + output);
	System.out.println("output2 : " + output2);
 
 결과 :
		input :            enjoy java programming    
		output : enjoy java programming
		output2 : enjoyjavaprogramming 

7. 문자열 비교하기

boolean isSam = str1.equals(str2);	// 문자열 비교는 ==으로 비교하면 안된다.
	if( isSam ) {
		System.out.println("같다");
	}else {
		System.out.println("다르다");
	}
    
 결과 :
		 다르다

8. 문자열 자르기

		// 첫 번째 파라미터 : 시작 위치
		// 두 번째 파라미터 : 끝 위치
		// 시작점부터 시작해서 지정위지가 되기 전까지 자름
        String sub_str1 = str1.substring(0,2);	
		// 두 번째 파라미터가 없는 경우는 끝까지 자른다.
		String sub_str2 = str1.substring(3);	// 
			System.out.println("sub_str1 : " + sub_str1);
			System.out.println("sub_str2 : " + sub_str2);

결과 :        
		    sub_str1 : 자바
			sub_str2 : Programming  
        

9. 형식에 따른 문자열 출력을 위한 static 메서드 사용

  • %d : 정수
  • %s : 문자
  • %f : float 소수
  • %3d : 숫자를 3자리로 맞춰서 출력. 자릿수가 맞지 않으면, 앞의 공백 출력
  • %03d : 자릿수가 맞지 않으면 0을 출력
  • %3s : 문자열을 3자리로 맞춰서 출력, 자릿수가 맞지 않으면 앞에 공백 출력
    (%03s와 같은 형식은 사용 불가)
int yy = 2023;
int mm = 3;
int dd = 14;
	String gender = "남자";
	String result = String.format("%d년 %02d월 %02d일 %s", yy, mm, dd, gender);
		System.out.println(result);

결과 :  
		20230314일 남자
        
		// 주어진 글자를 기준으로 잘라내어서 배열로 변환
String src = "C++/Java/C#/JavaScript/VB";
String[] data = src.split("/");
		
	for( int i=0; i<data.length; i++ ) {
		System.out.println(data[i]);

결과 : 
		C++
		Java
		C#
		JavaScript
		VB

예시

	public static void main(String[] args) {
		// 이메일 주소에서 아이디와 도메인 구별하기
		// split 사용 금지
		// student@java.com
		// 이메일 주소 : student
		// 도메인 주소 : java.com

		String email = "student@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);
	}
}
    	public static void main(String[] args) {
    			/*
    			 * 주민등록번호에서 생년월일 추출하기
    			 *   ex) 8005011234567 -> 1980년 05월 01일 남자
    			 *   태어난 년도 판별
    			 *   	-> 성별 코드 1 or 2 : 1900년도~
    			 *   	-> 성별 코드 3 or 4 : 2000년도~
    			 *   	-> 성별 코드 1 or 3 : 남성
    			 *   	-> 성별 코드 2 or 4 : 여성
    			 */
    		
    			String jumin = "8005011234567";
    			// 주민번호를 년, 월, 일 단위로 각 두 글자씩 자르기
    			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 or 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);
    		 	}
    	 }
    
    • static 메서드 valueOf
      기본 데이터형을 String 객체로 변환해 주는 메서드
      다양한 자료형에 대하여 오버로드 되어 있다.
    • instanceof : 참조변수가 참조하고 있는 인스턴스의 실제 타입을 알아보기 위해 사용. 형변환이 가능한지 확인.
	public static void main(String[] args) {
		// 기본자료형을 문자열로 변환하는 방법
		int a = 1;
		float b = 3.14f;
		boolean c = true;
		double d = 123.456;
		long e = 12341354125L;
		
		/*
		 * 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;
		// instanceof : 참조변수가 참조하고 있는 인스턴스의 실제 타입을 알아보기 위해 사용. 형변환이 가능한지 확인.
		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);
	}
}
    1. 	public static void main(String[] args) {
      		/*
      		 *  D:/photo/2023/travel/food.jpg 라는 파일이 있다
      		 *  이 파일의 경로를 data라는 객체로 생성한 뒤에, 다음의 형태로 출력
      		 *  단, split()메서드 사용 금자
      		 *  -----------------------------------------
      		 *  파일 이름	: food
      		 *  확장자 	: jpg
      		 *  폴더명	: D:/photo/2023/travel
      		 *  
      		 */
      		String data = "D:/photo/2023/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("/")));
      	}
      }
    1. 이스케이프 문자
      프로그램의 문자열 안에 포함될 수 있는 특수 문자
      ex) 문자열 안에서 쌍따움표를 표현하고자 하는 경우 사용한다.
      	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);
      	}
      }



 

profile
개발자
post-custom-banner

0개의 댓글