package chapter12object;
public class StringTest2 {
public static void main(String[] args) {
//length
String str = "아름다운 우리나라";
System.out.println("길이: " + str.length());
System.out.println("2번째 문자: " + str.charAt(2));
System.out.println();
//indexof ,lastIndexOf
String str2 = "String Search Method of String Class";
System.out.println("앞쪽 t = " + str2.indexOf('t')); //indexOf 메서드는 지정된 문자 또는 부분 문자열이 처음으로 나타나는 위치를 반환//만약 해당 문자 또는 부분 문자열이 없으면 -1을 반환.
System.out.println("뒤쪽 t = " + str2.lastIndexOf('t')); //lastIndexOf 메서드는 지정된 문자 또는 부분 문자열이 마지막으로 나타나는 위치를 반환//또한 해당 문자 또는 부분 문자열이 없으면 -1을 반환
System.out.println("앞쪽 z = " + str2.indexOf('z'));//없으니까 -1 반환
System.out.println("앞쪽 String = " + str2.indexOf("String"));
System.out.println("앞쪽 String = " + str2.lastIndexOf("String"));
//첫 번째 "String"은 0번째 인덱스에서 시작하고, 두 번째 "String"은 24번째 인덱스에서 시작합니다.
//그 다음에 나오는 인덱스는 문자열의 시작점부터 몇 번째 위치에 있는지를 나타냅니다.
//따라서 두 번째 "String"의 인덱스는 24가 되어야 합니다.
//startWith , endWith
String str3 = "girl.jpg";
System.out.println(str3.startsWith("g"));
System.out.println(str3.endsWith (".jpg"));
System.out.println();
//startsWith 메서드는 주어진 접두사로 시작하는지 여부를 반환합니다.
//여기서 "g"는 접두사이고, 이는 str 문자열이 "g"로 시작하는지 여부를 확인합니다.
//endsWith 메서드는 주어진 접미사로 끝나는지 여부를 반환합니다.
//여기서 ".jpg"는 접미사이고, 이는 str3 문자열이 ".jpg"로 끝나는지 여부를 확인합니다.
//changeCase
String str4 = "Kim Sang Hyung";
System.out.println(str4.toLowerCase()); //문자의 대소문자 변경 -> 메서드는 문자열의 모든 문자를 소문자로 변환
System.out.println(str4.toUpperCase()); //문자의 대소문자 변경 -> 메서드는 문자열의 모든 문자를 대문자로 변환
//문자열 자체를 변경하는 것은 아니다 // 문자열을 변경하는 것이 아니라 대문자로 변환된 새로운 문자열을 반환합니다. 원래의 문자열은 변경되지 않음
str4.toUpperCase();
System.out.println(str4);
//문자열을 변경하려면 저장해야한다
str4 = str4.toUpperCase();
System.out.println(str4);
System.out.println();
//trim
String str5 = " Kim Sang Hyung ";
System.out.println(str5.trim());
System.out.println(str5.trim().concat(" BABO"));
System.out.println();
//replace
String str6 = "독도는 일본땅. 대마도는 일본땅";
System.out.println(str6.replace("일본", "한국")); //replace() 메서드는 문자열에서 모든 발생을 대체 즉, "일본"이라는 문자열을 "한국"으로 모두 대체합
System.out.println(str6.replaceFirst("일본", "한국")); //replaceFirst() 메서드는 문자열에서 첫 번째 발생만 대체. 즉, 첫 번째 "일본"이라는 문자열만 "한국"으로 대체합니다.
System.out.println();
//substring
String str7 = "01234546789";
System.out.println(str7.substring(3,7)); //시작 인데스 마지막 인덱스 전까지
System.out.println();
System.out.println(str7.substring(7));
//split
String city = "서울,대전,대구,부산";
String[] token = city.split(","); //split(",")은 문자열을 쉼표(,)를 기준으로 분할하여 문자열 배열에 저장
for (String s : token) {
System.out.println(s);
}
System.out.println();
//join
String path = String.join("/", "user","date","app","local"); //String.join() 메서드는 첫 번째 매개변수로 구분자를 지정하고, 나머지 매개변수로 결합할 문자열들을 나열함.이 메서드는 주어진 구분자로 문자열을 결합한 결과를 반환합니다.
System.out.println(path);
}
}
