(1) 문자열을 위한 String Class
- 문자열과 관련된 작업을 할 때 유용하게 사용가능
- java.lang 패키지에 포함
(2) String Class 선언
String str1 = "자바 Programming";
String str2 = new String("Java")
(3) String Class 예시
- 문자열 길이 : .length();
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_len : 14
str2_len : 4
- 특정 문자열이 처음으로 나타나는 위치 : .indexOf();
int str1_pos = str1.indexOf(" ");
int str2_pos = str2.indexOf("a");
int str2_os = str2.indexOf("A");
System.out.println("str1_pos : " + str1_pos);
System.out.println("str2_pos : " + str2_pos);
System.out.println("str2_os : " + str2_os);
str1_pos : 2
str2_pos : 1
str2_os : -1
- 특정 문자열이 나타나는 마지막 위치 : .lastIndexOf(" ");
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
- A를 B로 변경 : replace("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
- 대소문자 변경 : toUpperCase();, toLowerCase();
String upper = new_str1.toUpperCase();
String lower = new_str2.toLowerCase();
System.out.println("upper : " + upper);
System.out.println("lower : " + lower);
upper : 자바-PROGRAMMING
lower : java
- 문자열의 앞 뒤 공백 제거 : .trim();
String input = " enjoy java programming ";
String output = input.trim();
System.out.println("output : " + output);
System.out.println("intput : " + input);
output : enjoy java programming
intput : enjoy java programming
- 중간공백까지 포함한 모든 공백 제거 : .replace(" ", "")
String output2 = input.replace(" ", "");
output2 : enjoyjavaprogramming
- 문자열 비교 : .equals(str2);
boolean isSam = str1.equals(str2);
if ( isSam ) {
System.out.println("같다!");
} else {
System.out.println("다르다!");
}
다르다!
- 문자열 자르기 : substring(시작위치,끝위치);
String sub_str1 = str1.substring(0,2);
String sub_str2 = str1.substring(3);
System.out.println(str1);
System.out.println("sub_str1 : " + sub_str1);
System.out.println("sub_str2 : " + sub_str2);
자바 Programming
sub_str1 : 자바
sub_str2 : Programming
int yy = 2023;
int mm = 2;
int dd = 1;
String gender = "남성";
String result = String.format("%d년 %02d월 %02d일 %s", yy, mm, dd, gender);
System.out.println(result);
2023년 02월 01일 남성
- 형식에 따른 문자열 출력을 위한 static 메서드
%d : 정수
%s : 문자
%f : float형 소수
%3d : 숫자를 3자리로 맞춰서 출력,
자릿수가 맞지 않으면 앞에 공백 출력
%03d : 자릿수가 맞지 않으면 앞에 0을 출력
%3s : 문자열을 3자리로 맞춰서 출력
자릿수가 맞지 않으면 앞에 공백 출력
(%03s와 같은 형식은 사용 불가, 0은 정수형일 때만)
- 주어진 글자를 기준으로 잘라내서 배열로 변환 : .split("/");
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
- 기본 자료형을 문자열로 변환 : valueOf();
int a = 1;
float b = 3.14f;
String str1 = String.valueOf(a);
String str2 = "" + b;
- 출처 물어보는 메소드 : instanceof
System.out.println( str1 instanceof String );
System.out.println( str2 instanceof String );
true
true
(4) println에서 특수문자 표현
- 문자열 내에 쌍따옴표
public static void main(String[] args) {
String src = "JAVA";
System.out.println( "\""+ src + "\"" );
"JAVA"
- 문자열 내에 홑따옴표
public static void main(String[] args) {
String src = "JAVA";
System.out.println( "\'"+ src + "\'" );
'JAVA'
- 줄바꿈 문자
public static void main(String[] args) {
String src = "JAVA";
System.out.println("\n" + src);
JAVA
- 탭키에 해당하는 문자
public static void main(String[] args) {
String src = "JAVA";
System.out.println("\t" + src);
//출력
JAVA