Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

Everything has an expiration date

★★★ 137 - Java 자바의 주요 클래스 : String 클래스, String 의 메소드substring(), equals(), equalsIgnoreCase(), endsWith(), IndexOf(), lastIndexOf(), charAt(), compareTo(), replaceAll(), trim(), String.format(), split() 본문

[Java]/Program source (java)

★★★ 137 - Java 자바의 주요 클래스 : String 클래스, String 의 메소드substring(), equals(), equalsIgnoreCase(), endsWith(), IndexOf(), lastIndexOf(), charAt(), compareTo(), replaceAll(), trim(), String.format(), split()

Jelly-fish 2023. 9. 18. 15:20
/*==============================================
  ■■■ 자바의 주요(중요) 클래스 ■■■
  - 자바에서 기본적으로 제공하는 주요 클래스들
  - String 클래스
================================================*/

public class Test137
{
	public static void main(String[] args)
	{
		String s = "seoul korea";
		System.out.println("s : " + s);
		//--==>> s : seoul korea

		

		//○ 문자열 추출
		System.out.println(s.substring(6, 9));
		//--==>> kor

		// ※ 『String.substring(s, e)』
		//     String 문자열을 대상으로
		//     s 번째에서... e-1 번째까지 추출
		//     (단, 인덱스는 0부터 시작)


		System.out.println(s.substring(7));
		//--==>> orea

		// ※ 『String.substring(s)』
		//     String 문자열을 대상으로
		//     s 번째에서... 끝까지 추출
		//     (즉, 문자열이 가진 길이만큼...)

		// ○ 문자열의 데이터(값) 비교
		System.out.println(s.equals("seoul korea"));
		System.out.println(s.equals("seoul Korea"));
		//--==>> true
		//		 false
		//-- 대소문자 엄격히 구분

		// 대소문자를 구분하지 않고 문자열을 비교.
		System.out.println(s.equalsIgnoreCase("SEOUL KOREA"));
		//--==>> true
		//-- 대소문자 구분 안 함


		// ○ 찾고자하는 대상 문자열(s)에
		//    『kor』 문자열이 존재할까?
		//     존재한다면... 그 위치는 어떻게 될까?

		// "seoul korea"
		//  0123456789
		
		System.out.println(s.indexOf("kor"));
		//--==>> 6

		System.out.println(s.indexOf("ea"));
		//--==>> 9

		System.out.println(s.indexOf("e"));
		//--==>> 1
		// ────────────────────────────
		// ↑ 맨 앞 (index=0)부터 찾기 시작하면서
		//    제일 먼저 "e"를 발견한 index인 1을 반환하고 있다.
		// ────────────────────────────
		//-- 먼저 찾은 문자열의 인덱스를 반환하고 종료.

		System.out.println(s.indexOf("tt"));
		//--==>> -1
		// 못 찾으면 음수가 나온다. 
		//-- 찾고자 하는 문자열이 대상 문자열에 존재할 경우
		//    그 문자열의 인덱스를 반환하지만
		//    존재하지 않을 경우 음수를 반환하게 된다. → (-1)
		

		// ○ 대상 문자열(s)이 『rea』로 끝나는지의 여부 확인
		//    (true / false)
		System.out.println(s.endsWith("rea"));
		System.out.println(s.endsWith("oul"));
		//--==>> true
		//		 false

		
		// ○ 찾고자하는 대상 문자열(s)에
		//    『e』 문자열이 존재할까?
		//     존재한다면... 그 위치는 어떻게 될까?
		//     (단, 뒤에서 부터 검사)


		// seoul korea
		System.out.println(s.indexOf("e"));
		System.out.println(s.indexOf("o"));
		//--==>> 1
		//		 2

		// 뒤에서 부터 찾아서, [index = 9] → 『e』
		// 0123456789
		// seoul korea
		System.out.println(s.lastIndexOf("e"));
		System.out.println(s.lastIndexOf("o"));
		//--==>> 9
		//		 7
		// 문자를 주고 → 인덱스를 반환


		// ○ 대상 문자열(s) 중
		//    『6』번째 인덱스 위치의 문자는?

		// seoul korea
		System.out.println(s.charAt(6));
		//--==>> k
		// 인덱스를 주고 → 문자를 반환

		// seoul korea
		// 문자열에 22번째 인덱스가 없다! 
		//System.out.println(s.charAt(22));
		//--==>> 에러 발생(런타임 에러)
		//		 StringIndexOutOfBoundsException
		
		
		// ○ 대상 문자열(s)과 비교 문자열 『seoul korea』 중
		//    어떤 문자열이 더 큰가?           → 문자열에 대한 크기 비교?
		//   ==> 두 문자열이 같다면            → 0
		//   ==> 두 문자열이 다르다면          → ???

		// seoul korea
		//                      
		// 문자열의 크기가 같다   => 내용이 같다   → 0
		// 문자열의 크기가 다르다 => 내용이 다르다 → ASCII 코드의 차이값을 반환.
		System.out.println(s.compareTo("seoul korea"));
		//--==>> 0 → 두 문자열이 같다. (s 의 값과 "seoul korea" 의 값이...)
		System.out.println(s.compareTo("seoul corea"));
		//--==>> 8
		//-- c ~ k  → defghijk → 8 (ASCII CODE가 총 8만큼 차이가 난다!)

		// ○ 대상 문자열(s) 중
		//    해당 문자열을 찾아서 원하는 형태로 수정된 문자열 반환
		s = "우리나라 대한민국 대한독립 만세";
		s = s.replaceAll("대한", "자주");
		//『s = s.replaceAll("대한", "자주");』****************************
		// s에 담겨있는 문자열들 중에... 
		// "대한"이라는 문자열이 있으면 → "자주"로 바꿔주겠니?
		//*****************************************************************
		// ▶ 바꾼다고 해서, 원본 대상이 바뀌어지진 않는다.
		// ▶ 따라서, s에 다시 그 값을 대입해주는 처리를 해주어야 한다.(덮어쓰기)
		// ----------------------------------------------------------------------
		
		System.out.println("처리 결과 : " + s);
		//--==>> 처리 결과 : 우리나라 자주민국 자주독립 만세




		// ○ 공백 제거
		s = "              사               랑               ";
		
		//System.out.println(s);
		//--==>>               사               랑

		// 공백 확인 목적으로, "|" 문자열을 사용.
		System.out.println("|"+s+"|");
		//--==>> |              사               랑               |


		// 『.trim()』 : 양쪽 가장자리 끝단에서의 공백을 제거해 주는 메소드
		System.out.println("|" + s.trim() + "|");
		//--==>> |사               랑|
		//-- 양쪽 가장자리 공백 제거
		//-- 손톱깎이 회사명 : 트림. → 트림 손톱깎이...
		//   손톱 끝단을 깎듯이 공백을 삭제한다.
		//   손톱깎이처럼 중간 어딘가를 파서 자르지 못한다.
		//   → (중간에 끼어있는 공백을 제거하지 못한다.)

		
		System.out.println("|" + s.replaceAll(" ", "") + "|");
		//--==>> |사랑|


		// "50"
		int temp = Integer.parseInt("50");
		//System.out.println(temp);
		System.out.printf("%d\n", temp);
		//--==>> 50


		// 30
		s = Integer.toString(30);
		//System.out.println(s);
		System.out.printf("%s\n", s);
		//--==>> 30


		int n = 2345678;
		// ※ printf == format 똑같이 사용할 수 있다.
		System.out.printf("%d", n);
		System.out.format("%d", n);
		//--==>> 23456782345678

		System.out.println();			// 개행

		// 『String의 format() 메소드』=========================================
		// printf, format과 사용 방법이 똑같다.
		// 출력하는 그 문자열 형태 (%d → 정수) 로 문자열의 타입을 만들어 준다.
		// =====================================================================
		s = String.format("%d", n);
		System.out.println(s);
		//--==>> 2345678

		s = String.format("%.2f", 123.456);
		System.out.println(s);
		//--==>> 123.46

		s = String.format("확인 : %b", true);
		System.out.println(s);
		//--==>> 확인 : true

		// 정수 형태로 3 자릿수 마다 쉼표를 찍어서 표현한다.
		s = String.format("결과 : %,d", n);
		System.out.println(s);
		//--==>> 결과 : 2,345,678

		//String str = "기본,열정,배려";
		//String[] strArr = str.split(",");
		// ","로 구분해서, 문자열 배열로 반환한다.
		// {"기본", "열정", "배려"}
		
		
		// line 223 ~ 224 와 동일한 구문
		String[] strArr = "기본,열정,배려".split(",");

		for(String str : strArr)
			System.out.print(str + " ");
		System.out.println();
		//--==>> 기본 열정 배려



	}
}