예제를 위한 기본 문자열 선언
String s = "I like Java and Python and C.";
length()
문자열의 길이를 확인을 위해 사용
System.out.println(s.length()); // 29
길이 확인을 원하는 곳을 드래그 하여 확인도 가능
toUpperCase() / toLowerCase()
전체 문장 대소문자 변경을 위해 사용
System.out.println(s.toUpperCase());
// I LIKE JAVA AND PYTHON AND C.
System.out.println(s.toLowerCase());
// i like java and python and c.
포함 관계
1. contains()
전체 문장에서 원하는 것이 포함되어있는지 아닌지 확인
System.out.println(s.contains("Java"));
// 포함되어있으면 true
System.out.println(s.contains("C#"));
// 아니면 false
2. indexOf() / lastIndexOf()
전체문장에서 원하는 것이 포함되어있는 위치 정보 반환
System.out.println(s.indexOf("Java"));
// Java가 어디있는지 위치 확인, 위치 정보 7
System.out.println(s.indexOf("C#"));
// 포함되어있지 않다면 -1로 반환됨
System.out.println(s.indexOf("and"));
// 처음 일치하는 위치 12를 반환함.
System.out.println(s.lastIndexOf("and"));
// 마지막에 일치하는 위치 23을 반환함.
3. startsWith() / endsWith()
시작 및 끝나는 문자열이 원하는 것으로 시작하고 끝나는지 확인
System.out.println(s.startsWith("I like"));
// ()안에 있는 문자열로 시작하면 true
System.out.println(s.endsWith("and C."));
// ()안에 있는 문자열로 끝나면 true
replace() / substring()
기존 있던 문자열에서 일부분 수정을 위해 사용
System.out.println(s.replace(" and", ","));
// " and"를 ","로 변환
// I like Java, Python, C.
System.out.println(s.substring(7));
// 인덱스 기준 7부터 시작(이전 내용 삭제)
// Java and Python and C.
System.out.println(s.substring(s.indexOf("Java")));
// indexOf, substring 동시 사용, "Java"가 시작하는 위치부터, "."이 시작하는 위치 바로 앞까지
// Java and Python and C.
System.out.println(s.substring(s.indexOf("Java"), s.indexOf(".")));
// 시작 위치부터 끝 위치 직전까지 반환
//Java and Python and C
trim()
문자열 앞 뒤에 있는 의미 없는 공백 자동 삭제
s = " I love Java. ";
System.out.println(s.trim());
// I love Java.
concat()
concat()안에 있는 것을 기준 문자열 뒤에 붙여서 반환.
한번에 두번 이상 사용가능.
String s1 = "Java";
String s2 = "python";
System.out.println(s1 + " and " + s2);
//concat()을 사용하지 않고 문자열 결합 시
System.out.println(s1.concat( " and ").concat(s2));
//Java and python
equals()
Java에서 문자열 비교를 하고 싶다면 무조건 equals()를 사용하여 값 비교를 해야한다.
대소문자를 구분하여 문자열 내용이 같으면 true, 다르면 false 반환
String s1 = "Java";
String s2 = "Python";
System.out.println(s1.equals(s2)); // false
System.out.println(s1.equals("Java")); // true
equalsIgnoreCase()
대소문자를 구분 없이 문자열 내용이 같으면 true, 다르면 false 반환
System.out.println(s2.equalsIgnoreCase("python")); // true
equals() : 문자열 값 비교
비교연산자 == : 객체의 값(주소)를 비교
s1 = "1234";
s2 = "1234";
// s1과 s2 하나의 주소 값을 참조함.
System.out.println(s1.equals(s2)); // 내용 값을 비교
System.out.println(s1 == s2); // 참조가 같은지 비교
s1 = new String("1234");
s2 = new String("1234");
// 각각 다른 주소에 "1234"라는 값을 저장하여 참조.
System.out.println(s1.equals(s2));
// 내용 값을 비교하였기 때문에 true
System.out.println(s1 == s2);
// 참조가 같은지 비교하였을 때문에 false
영어로는 Escape Sequence, Escape Character, Special Character로 다르게 불리지만 전부 특수문자를 가리키는 말이다.
\n : 줄바꿈
System.out.println("자바가\n너무\n재밌어요");
// 자바가
// 너무
// 재밌어요
\t : tap과 동일 기능
System.out.println("해물파전\t9000원");
System.out.println("김치전\t8000원");
System.out.println("부추전\t8000원");
// 해물파전 9000원
// 김치전 8000원
// 부추전 8000원
\\: 문자열에서 \를 사용하고 싶을 때
보통 window 경로나타낼 때 사용됨.
System.out.println("C:\\Program Files\\Java");
// C:\Program Files\Java
\": 문자열에서 "를 사용하고 싶을 때
System.out.println("단비가 \"냐옹\"이라고 했어요");
// 단비가 "냐옹"이라고 했어요
\': 문자열에서 '를 사용하고 싶을 때
문자열에서는 \'을 사용하지 않고 그냥 '로 적어도 문제 없지만,
char 변수에서 '를 넣고 사용하고 싶을 때 주로 사용됨.
System.out.println("단비가 \'뭘 봐?\'라는 표정이네요");
// 단비가 '뭘 봐?'라는 표정이네요
주민등록번호에서 생년월일 및 성별까지만 출력하는 프로그램을 작성하시오
참고
실행 결과
901231-1
030708-4
String residentRegistrationNum = "901231-1234567";
System.out.println(residentRegistrationNum.substring(0,8));
// 901231-1
residentRegistrationNum = "030708-4567890";
System.out.println(residentRegistrationNum.indexOf("-"));
//위치 정보 6
System.out.println(residentRegistrationNum.substring(0,(residentRegistrationNum.indexOf("-") + 2)));
// 030708-4
// 5 직전 위치까지의 값이 필요하기 때문에 위치정보 + 2를 하여 5 직전까지를 출력시킴
유튜브 나도코딩
https://youtu.be/NQq0dOoEPUM
점프 투 자바
https://wikidocs.net/book/31