본문 바로가기

Development

(Java) Chapter3. 문자열

1. 문자열

  1) 길이

String s = "I like Java and Python and C.";
System.out.println(s);

// 문자열의 길이 (파이썬의 len기능)
System.out.println(s.length());              // 29

  2) 대소문자 변환

System.out.println(s.toUpperCase());         // 대문자로
System.out.println(s.toLowerCase());         // 소문자로

  3) 포함관계

System.out.println(s.contains("Java"));      // (포함 여부)포함된다면 true
System.out.println(s.contains("C#"));        // false
System.out.println(s.indexOf("Java"));       // (위치 정보)문자열 위치 정보 반환(0부터 시작, 띄어쓰기 포함, 시작위치 반환), 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
System.out.println(s.endsWith("."));         // 끝 문자열 참거짓, true

2. 문자열 전처리

  1) 문자열 변환

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(".")));  

  2) 공백 제거

s = "           I love Java.       ";
System.out.println(s);
System.out.println(s.trim());                      // 앞뒤 공백 제거

  3) 문자열 결합

String s1 = "Java";
String s2 = "Python";
System.out.println(s1 + s2);                       // 변수 선언 후 변수로 결함
System.out.println(s1 + "," + s2);
System.out.println(s1.concat(",").concat(s2)); // concat 사용, 상동

 

3. 문자열 비교

String s1 = "Java";
String s2 = "Python";

System.out.println(s1.equals(s2));                              // false (문자열 내용 같으면 true, 반대는 false)
System.out.println(s1.equals("Java"));                          // true
System.out.println(s1.equals("python"));                        // false(대소문자 구분)
System.out.println(s2.equalsIgnoreCase("python"));  // true 대소문자 구분 없이 문자열 비교

//문자열 비교 심화
s1 = "1234";                               // 메모리 데이터 고정
s2 = "1234";                               // 고정 데이터 참조
System.out.println(s1.equals(s2));         // true
System.out.println(s1 == s2);              // true (s1과 s2가 참조하는 것이 같은 지 비교)

s1 = new String("1234");            // s1에 데이터 할당
s2 = new String("1234");            // s2에 별도 데이터 할당(서로 다른 데이터)
System.out.println(s1.equals(s2));         // true
System.out.println(s1 == s2);              // false (참조가 다르므로 거짓)

 

4. 특수문자 (이스케이프 문자, Escape Sequence, Escape Character, Special Character)

System.out.println("자바가");
System.out.println("너무");
System.out.println("재미있어요");
// 줄바꿈(\n)
System.out.println("자바가\n너무\n재미있어요");

// tab(\t)
/*
해물파전  9000원
김치전   8000원
부추전   8000원
 */
System.out.println("해물파전\t9000원");      // 해물파전  9000원
System.out.println("김치전\t8000원");       // 김치전    8000원
System.out.println("부추전\t8000원");       // 부추전    8000원

// 역슬래시(\\)
System.out.println("C:\\Program Files\\Java");    // 역슬래시 한 번은 특수문자로 인식하므로 "\\"로 작성

// 큰따옴표 (\"), 작은 따옴표 (\') 예: 단비가 "냐옹" 이라고 했어요
System.out.println("단비가 \"냐옹\" 이라고 했어요");      // 문자열 안에서 큰따옴표 출력
System.out.println("단비가 '뭘 봐?' 라는 표정을 지었어요"); // 작은 따옴표는 문자열 안에서는 없어도 됨

char c = 'A';
c = '\'';                                           // 작은따옴표 내에서는 \' 필요

 

'Development' 카테고리의 다른 글

(Java) Chapter6. Method  (0) 2023.01.08
(Java) Chapter5. Array  (0) 2023.01.06
(Java) Chapter4. 제어문  (0) 2023.01.04
(Java) Chapter 1 환경설정 및 자료형  (0) 2023.01.03