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();
//--==>> 기본 열정 배려
}
}