[3일차] 자바 문법 공부

DevNoteKeeper·2023년 4월 20일
2

JAVA

목록 보기
3/3
post-thumbnail

06. 문자열(String)

String의 다양한 기능

예제를 위한 기본 문자열 선언
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

String 비교(String Compare)

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()와 비교연산자 ==의 차이점

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

특수문자(backslash \)

영어로는 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("단비가 \'뭘 봐?\'라는 표정이네요");
// 단비가 '뭘 봐?'라는 표정이네요

☑ Quiz_03

문제

주민등록번호에서 생년월일 및 성별까지만 출력하는 프로그램을 작성하시오

참고

  • 주민등록번호는 13자리의 숫자로 구성
  • 앞 6자리는 생년월일 정보, 뒷 7자리 중 첫 번째 숫자는 성별 정보
  • 입력 데이터는 -을 포함한 14의 문자열 형태

실행 결과
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

profile
강의에서 주로 질문하는 내용에 대한 답변과 각종 오류 해결방법에 대해 알려드립니다.

0개의 댓글