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);
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);
결과 :
2023년 03월 14일 남자
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) {
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) {
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 = "남자";
if( gender_code.equals("2") || gender_code.equals("4") ) {
gender = "여자";
}
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;
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);
}
}
-
public static void main(String[] args) {
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("/")));
}
}
-
- 이스케이프 문자
프로그램의 문자열 안에 포함될 수 있는 특수 문자
ex) 문자열 안에서 쌍따움표를 표현하고자 하는 경우 사용한다. public static void main(String[] args) {
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);
}
}