int length()
-> 현재 문자열의 길이 값을 반환
String a1 = "ABC"; System.out.println(a1, length());
[실행결과] 3
String toUpperCase(), String toLowerCase()
-> 현재 문자열을 전부 대문자, 소문자로 반환
String a1 = "abcABC"; System.out.println(a1.toUpperCase()); System.out.println(a1.toLowerCase());
[실행결과] ABCABC abcabc
Boolean contains
-> 현재 문자열에 매개변수 s의 문자열이 포함되어 있는지 여부를 검사 후 결과를 반환
- 포함되어 있으면 true
- 포함되어 있지 않으면 false
String a1 = "APPLE"; System.out.println(a1.contains("A")); System.out.println(a1.contains("a")); System.out.println(a1.contains("Z"));
[실행결과] true false false
int indexOf(String str)
-> 현재 문자열내에 있는 첫번째 str 문자열의 시작위치를 찾아서 그 결과값을 반환합니다. fromIndex를 사용하면 해당 인덱스의 위치에서부터 검색을 시작
- 포함되어 있으면 : 해당위치의 index값
- 포함되어 있지 않으면 : -1
String s1 = "ABCDE-ABCDE"; System.out.print(s1.indexOf("D") + ", "); System.out.print(s1.indexOf("d") + ", "); System.out.print(s1.indexOf("Z") + ", "); System.out.print(s1.indexOf("DE")); System.out.printf("%n--------------%n"); System.out.print(s1.indexOf("D",2) + ", "); System.out.print(s1.indexOf("D",3) + ", "); System.out.print(s1.indexOf("D",4) + ", "); System.out.print(s1.indexOf("D",5) + ", "); System.out.print(s1.indexOf("D",10));
[실행결과] 3, -1, -1, 3 -------------- 3, 3, 9, 9, -1
int lastIndexOf(String str)
-> 현재 문자열내에 있는 마지막 str 문자열의 시작위치를 찾아서 그 결과값을 반환합니다. fromIndex를 사용하면 해당 인덱스의 위치에서부터 거꾸로 검색을 시작
- 포함되어 있으면 : 해당위치의 index값
- 포함되어 있지 않으면 : -1
String s1 = "ABCDE-ABCDE"; System.out.print(s1.lastIndexOf("D") + ", "); System.out.print(s1.lastIndexOf("d") + ", "); System.out.print(s1.lastIndexOf("Z") + ", "); System.out.print(s1.lastIndexOf("DE")); System.out.printf("%n--------------%n"); System.out.print(s1.lastIndexOf("D",2) + ", "); System.out.print(s1.lastIndexOf("D",3) + ", "); System.out.print(s1.lastIndexOf("D",4) + ", "); System.out.print(s1.lastIndexOf("D",5) + ", "); System.out.print(s1.lastIndexOf("D",10));
[실행결과] 9, -1, -1, 9 -------------- -1, 3, 3, 3, 9
boolean startsWith(String prefix)
-> 현재 문자열이 prefix 문자열로 시작하는지 검사 후 결과를 반환합니다. toffset을 사용할 경우 해당 숫자 만큼 건너뛴후 검사를 진행
- 포함되어 있으면 : true
- 포함되어 있지 않으면 : false
String s1 = "HelloJavaWorld"; System.out.println(s1.startsWith("Hello")); System.out.println(s1.startsWith("hello")); System.out.println(s1.startsWith("Java")); System.out.println(s1.startsWith("Java", 5));
[실행결과] true false false true
boolean endsWith(String suffix)
-> 현재 문자열이 suffix 문자열로 끝나는 검사후 결과를 반환
- 포함되어 있으면 : true
- 포함되어 있지 않으면 : false
String s1 = "HelloJavaWorld"; System.out.println(s1.endsWith("World")); System.out.println(s1.endsWith("world")); System.out.println(s1.endsWith("Java"));
[실행결과] true false false
package chap_03;
public class _01_String1 {
public static void main(String[] args) {
String s = "I like Java and Python and C.";
System.out.println(s);
// 문자열의 길이
System.out.println(s.length()); // 29
// 대소문자 변환
System.out.println(s.toUpperCase()); // 대문자로
System.out.println(s.toLowerCase()); // 소문자로
// 포함 관계
System.out.println(s.contains("Java")); // 포함된다면 true
System.out.println(s.contains("C#")); // 포함되지 않는다면 false
System.out.println(s.indexOf("Java")); // 위치 정보 7
System.out.println(s.indexOf("C#")); // 포함되지 않는다면 -1
System.out.println(s.indexOf("and")); // 처음 일치하는 위치 정보 (12)
System.out.println(s.lastIndexOf("and")); // 마지막 일치하는 위치 정보 (23)
System.out.println(s.startsWith("I like")); // 이 문자열로 시작하면 true (아니면 false)
System.out.println(s.endsWith(".")); // 이 문자열로 끝나면 true (아니면 false)
}
}
String replace(CharSequence target, CharSequence replacement)
-> 현재 문자열에 있는 target문자열을 replacement 문자열로 변경하여 반환
String s1 = "A+B+C+D+E"; System.out.println(s1.replace("+", "-"));
[실행결과] A-B-C-D-E
String substring(int beginIndex)
-> 현재 문자열의 beginIndex 위치부터 마지막까지 문자열을 반환합니다. endIndex를 사용하면 beginIndex부터 endIndex - 1 까지의 문자열을 반환
String s1 = "ABCDEFG"; System.out.println(s1.substring(2)); System.out.println(s1.substring(2,4));
[실행결과] CDEFG CD
※주의
-> s 변수에 변환 결과가 반영되는 것은 아니다.
s = s.substring(7);
ㄴ이렇게 해야 변환 결과가 s변수에 반영된다.
package chap_03;
public class _02_String2 {
public static void main(String[] args) {
String s = "I like Java and Python and C.";
// 문자열 변환
System.out.println(s.replace(" and", ",")); // " and" 를 "," 로 변환
System.out.println(s.substring(7)); // 인덱스 기준 7 부터 시작 (이전 내용은 삭제)
System.out.println(s.substring(s.indexOf("Java")));
// "Java" 가 시작하는 위치부터, "." 이 시작하는 위치 바로 앞까지
System.out.println(s.substring(s.indexOf("Java"), s.indexOf("."))); // 시작 위치부터 끝 위치 "직전" 까지
// 공백 제거
s = " I love Java. ";
System.out.println(s);
System.out.println(s.trim()); // 앞뒤 공백 제거
// 문자열 결합
String s1 = "Java";
String s2 = "Python";
System.out.println(s1 + s2); // JavaPython
System.out.println(s1 + "," + s2); // Java,Python
System.out.println(s1.concat(",").concat(s2)); // Java,Python
}
}
boolean equals(Object anObject)
-> 두 문자열이 같은지 여부를 비교한 후 그 결과를 반환
- 포함되어 있으면 : true
- 포함되어 있지 않으면 : false
String s1 = "ABC"; System.out.println(s1.equals("ABC")); System.out.println(s1.equals("abc")); System.out.println(s1.equals("XYZ"));
[실행결과] true false false
boolean equalsIgnoreCase(String anotherString)
-> 대소문자의 구분없이 두 문자열이 같은지 여부를 비교한 후 그 결과를 반환
- 포함되어 있으면 : true
- 포함되어 있지 않으면 : false
String s1 = "ABC"; System.out.println(s1.equalsIgnoreCase("ABC")); System.out.println(s1.equalsIgnoreCase("abc")); System.out.println(s1.equalsIgnoreCase("XYZ"));
[실행결과] true true false
int compareTo(String anotherString)
-> 두 문자열을 사전 순으로 비교한 결과를 반환
- 두 문자열이 같을 경우 : 0
- 현재 문자열이 anotherString 문자열보다 먼저인 경우 : 음수(-)
- 현재 문자열이 anotherString 문자열보다 나중인 경우 : 양수(+)
String s1 = "E"; System.out.println(s1.compareTo("A")); System.out.println(s1.compareTo("a")); System.out.println(s1.compareTo("E")); System.out.println(s1.compareTo("e")); System.out.println(s1.compareTo("Z")); System.out.println(s1.compareTo("z"));
[실행결과] 4 -28 0 -32 -21 -53
package chap_03;
public class _03_StringCompare {
public static void main(String[] args) {
// 문자열 비교
String s1 = "Java";
String s2 = "Python";
System.out.println(s1.equals("Java")); // 문자열 내용이 같으면 true, 다르면 false
// 대소문자 구분 없이 문자열 내용이 같은지 여부 체크
System.out.println(s2.equalsIgnoreCase("python"));
// 문자열 비교 심화
s1 = "1234"; // 벽에 붙은 메모지의 비밀번호 정보 (참조)
s2 = "1234";
// s1과 s2는 같은 곳을 참조한다.
System.out.println(s1.equals(s2)); // true (내용 비교)
System.out.println(s1 == s2); // true (참조하는 곳 비교)
s1 = new String("1234"); //메모지에 저장
s2 = new String("1234"); //또 다른 메모지에 저장
//이 두 메모지는 서로 다른 것이다.(서로 다른 곳에 데이터 저장)
// 1234라는 메모지는 하나만 있고 메모지의 값을 s1과 s2라는 string 변수(문자열 변수)가 참조하는 것이다.
System.out.println(s1.equals(s2)); // true -> 내용이 같으니까
System.out.println(s1 == s2); // false -> 등호를 이용할 때는 서로 다른 메모리 공간에 각각 존재하는 데이터니까
}
}
-> 문자열을 사용할 때 어떤 약속이 되어 있는 특별한 기능을 하는 문자
package chap_03;
public class _04_EscapeSequence {
public static void main(String[] args) {
// 특수문자, 이스케이프 문자 (Escape Sequence, Escape Character, Special Character)
// \n \t \\ \" \'
System.out.println("자바가");
System.out.println("너무");
System.out.println("재밌어요");
// \n : 줄바꿈
System.out.println("자바가\n너무\n재밌어요");
// \t : 탭
// 해물파전 9000원
// 김치전 8000원
// 부추전 8000원
System.out.println("해물파전\t\t9000원");
System.out.println("김치전\t\t8000원");
System.out.println("부추전\t\t8000원");
// \\ : 역슬래시
System.out.println("C:\\Program Files\\Java");
// \" : 큰따옴표
// 단비가 "냐옹" 이라고 했어요
System.out.println("단비가 \"냐옹\" 이라고 했어요");
// \' : 작은따옴표
// 단비가 '뭘 봐?' 라는 표정을 지었어요
System.out.println("단비가 \'뭘 봐?\' 라는 표정을 지었어요");
System.out.println("단비가 '뭘 봐?' 라는 표정을 지었어요");
char c = 'A';
c = '\'';
System.out.println(c);
}
}
Q. 주민등록번호에서 생년월일 및 성별까지만 출력하는 프로그램을 작성
참고
예시