예시 코드
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);
}
}