Java

[Java] 문자열

dalooong 2023. 7. 7. 10:48

‘나도코딩 JAVA 강의 수강’

  • 문자열 (길이, 대소문자, 포함관계)
package chap_03;

public class _01_String {
    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")); //Java가 포함되어있으므로 true
        System.out.println(s.contains("C#")); //없으므로 false
        System.out.println(s.indexOf("Java")); //java가 어디에 위치되어있는지, 첫글자는 0부터
        System.out.println(s.indexOf("C#")); //포함되어있지않으므로 -1로 반환
        System.out.println(s.indexOf("and")); //처음일치하는 and 위치정보
        System.out.println(s.lastIndexOf("and")); // 마지막으로 일치하는 and 위치정보
        System.out.println(s.startsWith("I like")); //이 문자열로 시작하는게 맞으면 true 출력, 아니면 false출력
        System.out.println(s.endsWith(".")); //이 문자열로 끝나면 true, 아니면 false출력
        
    }
}
  • 문자열(문자열 반환,공백제거,결합)
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", ",")); //문자열을 교체하기
        System.out.println(s.substring(7)); //인덱스 기준 7부터 시작(이전 내용은 잘라내고 출력함)
        System.out.println(s.substring(s.indexOf("Java")));
        System.out.println(s.substring(s.indexOf("Java"), s.indexOf("."))); //java로 시작해서 .직전까지 출력하고 뒤에는 삭제

        //공백 제거
        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
    }
}
  • 문자열 비교
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.equals("python")); //대소문자 구분됨
        System.out.println(s2.equalsIgnoreCase("python"));
        //대소문자 구분없이 문자열 내용이 같으면 true출력 equalsignorecase

        //문자열 비교 심화
        s1 = "1234"; //벽에 붙은 메모지의 비밀번호 정보 (참조)
        s2 = "1234";
        System.out.println(s1.equals(s2)); //true(내용) s1의 내용이 s2와 같으면 true, 틀리면 false
        System.out.println(s1 == s2); //true (참조)

        s1 = new String("1234");
        s2 = new String("1234");
        System.out.println(s1.equals(s2)); //true
        System.out.println(s1 == s2); //false나오는 이유?
    }
}
  • 특수문자, 이스케이프문자 Escape Sequence, Escape Character, Special Character)
package chap_03;
public class _04_EscapeSequence {
    public static void main(String[] args) {
        //특수문자, 이스케이프 문자(escape sequence, escape character, special character)
        System.out.println("자바가");
        System.out.println("너무");
        System.out.println("재밌어요");

        System.out.println("자바가\\n너무\\n재밌어요"); //문자열내에서 엔터치는거 \\n 사용

        //해물파전       9000원
        //김치전        8000원
        //부추전        8000원
        System.out.println("해물파전\\t\\t9000원");
        System.out.println("김치전\\t8000원");
        System.out.println("부추전\\t8000원"); //자동적으로 탭할때 \\t사용

        // \\\\ : 역슬래시
        System.out.println("C:\\\\Program Files\\\\Java"); // 역슬래시 두개 입력하면 한개만 출력 파일경로나 폴더경로 출력시사용

        // 문장안에 큰따옴표, 작은따옴표 넣을때 역슬래시 사용 (" \\"\\" ") 퐁당퐁당 사용
        System.out.println("담비가 \\"냐옹\\"이라고 했어요");
        System.out.println("담비가 \\'뭘 봐?\\'라는 표정을 지었어요");
        System.out.println("담비가 '뭘 봐?'라는 표정을 지었어요");

        char c = 'A';
        c = '\\''; //작은 따옴표 글자 한개만 출력하고 싶을 때
        System.out.println(c);
    }
}
  • Quiz 03
package chap_03;

public class _Quiz_03 {
    public static void main(String[] args) {
        //"901231-1234567"인 경우 901231-1까지 출력
        String s1 = "901231-1234567";

        System.out.println(s1.substring(s1.indexOf("901231"), s1.lastIndexOf("2")));
        System.out.println(s1.substring(0, 8)); //0자리부터 8자리까지 출력
        System.out.println(s1.substring(0, s1.indexOf("-") + 2));//0위치부터 하이픈 위치 +2 직전까지 출력
    }
}