Programing Language/Java

String 객체

JHeaon 2024. 4. 30. 09:56

 

오늘은 자바의 String 클래스에 대해서 정리하고 관련 알고리즘 문제를 해결 할 때 쓰는 패턴들을 정리해보고자 한다. 

 

 


 

java String 

아래는 java String 객체에서 사용할 수 있는 메소드와 기능을 정리한 표이다. 여기서 몇가지 헷갈리는 점을 몇개 체크해 보자면 아래와 같다. 

  • python에서 문자열을 접근할때 string[0] 처럼 인덱스 접근이 안되고, charAt()을 통해 접근한다. 
  • java collection에서 객체 배열의 길이는 size() String에서 길이는 length()로 구한다.
문자열 함수 설명 참고
equal 해당 함수는 문자열 간의 “대소문자를 구분”하여서 비교하여 진위형(true/false)값으로 반환을 해주는 함수입니다. 단, String과 StringBuffer간의 비교는 불가능합니다.
cotentEquals 해당 함수는 문자열 간의 “대소문자를 구분”하여 비교하여 진위형(true/false)값으로 반환을 해주는 함수입니다. String과 StringBuffer간의 비교가 가능합니다.
equalsIgnoreCase 해당 함수는 문자열 간의 “대소문자를 구분하지 않고“ 비교하여 진위형(true/false)값으로 반환을 해주는 함수입니다.  
compareTo 해당 함수는 문자열 간의 비교와 숫자 간의 비교를 통해서 int 값으로 반환을 해주는 함수입니다. - 문자열 간의 비교 일 경우 동일한 문자열의 경우는 0의 값을 반환해주며, 이외에는 기준이 되는 문자열과 비교가 되는 문자열의 길이(lenght) 차이를 반환해줍니다. 또한 해당 차이가 불가능 하는 경우에는 비교가 불가능한 문자열의 첫번째 ASCII 코드 값 기준으로 반환합니다.
split /
Pattern.complie /
toCharArray
해당 함수는 문자열을 문자 배열로 반환합니다.  
chartAt / (char) 해당 함수는 문자열을 ASCII코드로 변환하거나 역으로 ASCII코드에서 문자열로 변환하는 함수입니다.  
split 해당 함수는 문자열을 특정 기준으로 구분을 지어서 배열로 반환을 해주는 함수입니다.  
substring 해당 함수는 문자열을 특정 인덱스 범위(n ~ m)내로 지정하여서 원하는 범위의 문자열을 반환을 해주는 함수입니다. 단, substring(1)인 경우는 첫번째 값을 제외한 뒤에 문자을 가져옵니다
repeat 해당 함수는 문자열을 n번 반복하여 반환을 받고자 할때 사용하는 함수입니다.  
replace 해당 함수는 문자열 내에 포함이 되어있는 문자를 제거 혹은 대체 하기 위해 문자열을 이용하여 찾고 반환을 해주는 함수입니다. 문자열을 이용한 조회 및 변경
replaceAll 해당 함수는 문자열 내에 포함이 되어있는 문자를 제거 혹은 대체 하기 위해 정규식을 이용하여 찾고 반환을 해주는 함수입니다. 정규식을 이용한 조회 및 변경
concat /
+ 기호 /
append
해당 함수는 문자열을 기준으로 다른 문자열을 합쳐주고 반환을 해주는 함수 입니다.  
contains 해당 함수는 문자열 내에 일치하는 문자열을 확인하기 위해 문자열을 이용하여 찾고 존재여부를 반환해주는 함수입니다. 문자열을 이용한 조회
matches 해당 함수는 문자열 내에 일치하는 문자열을 확인하기 위해 정규식을 이용하여 찾고 존재여부를 반환해주는 함수입니다. 정규식을 이용한 조회 
toUpperCase 해당 함수는 알파벳 문자열을 대문자로 변환하여 반환해주는 함수입니다.  
toLowerCase 해당 함수는 알파벳 문자열을 소문자로 변환하여 반환해주는 함수입니다.  
trim 해당 함수는 왼쪽과 오른쪽에 있는 공백을 제거하여 반환해주는 함수입니다.  
format 해당 함수는 왼쪽 혹은 오른쪽에 문자열을 채워 반환해주는 함수입니다.  
startsWith 해당 함수는 문자열이 지정한 접두사와 같은지에 대해 반환해주는 함수입니다  
endsWith 해당 함수는 문자열이 지정한 접미사와 같으지에 대해 반환해주는 함수입니다.  
join 해당 함수는 배열을 하나의 문자열로 경합하여 반환해주는 함수입니다.  
valueOf 해당 함수는 객체를 문자열로 변환하는데 사용하는 함수입니다.  
copyValueOf 해당 함수는 문자열의 일부분을 복사하여 새로운 문자열을 생성하는데 사용하는 함수입니다.

 

 

 

 

문자열에서 문자찾기

자바의 String에서 문자를 찾는 방법은 여러가지가 있는데, 그 중 자주사용하는 메소드와 용도를 소개하고자 한다. 

메소드 사용처
indexOf() 대상 문자열에서 찾고자 하는 문자의 index값을 찾고싶을때
contains() 대상 문자열에서 찾고자 하는 문자열이 포함되어있는지 여부를 알고 싶을때
matches() 대상 문자열에서 정규표현식(숫자, 영문자, 한글)등이 포함되어있는지 여부를 알고 싶을때

 

특히 그 중에서 indexOf()는 매칭되는 인자값의 index 값을 반환하는데, 뒤에 인수를 넣음으로써 몇 번째 인자값의 index부터 검색 할 것인지 정할 수 있다. 

사용법 설명
indexOf(String str)  대상문자열에 인자값으로 주어지는 String값이 있는지 검색합니다.
indexOf(char ch)  대상문자열에 인자값으로 주어지는 char값이 있는지 검색합니다.
indexOf(String str, int fromIndex) 대상문자열에 첫번째 인자값으로 주어지는 String값이 있는지 두번째 인자값의 index부터 검색합니다.
indexOf(char ch, int fromIndex)  대상문자열에 첫번째 인자값으로 주어지는 char값이 있는지 두번째 인자값의 index부터 검색합니다.

 

 

 

 

 

문자 대, 소문자 변환하기

이번에는 문자를 대 소문자 변환하는 방법에 대해서 알아보고자 한다. 

 

1. String에서 대, 소문자를 변환하는 방법 : 문자열을 대, 소문자 변환하기 위해서는 String객체.toLowerCase() 혹은 toUpperCase을 사용한다. 

public class Main {
    public static void main(String[] args) {
        String testCase = "Hello World!";

        testCase = testCase.toLowerCase();
        System.out.println(testCase);

        testCase = testCase.toUpperCase();
        System.out.println(testCase);
    }
}

// 출력
hello world!
HELLO WORLD!

 

 

2. char에서 대, 소문자를 변환하는 방법 : 문자를 대, 소문자 변환하기 위해서는 Character.toLowerCase, Charater.toUpperCase을 사용한다. 

public class Main {
    public static void main(String[] args) {
        String testCase = "Hello World!";
        char[] testCase2 = testCase.toCharArray();
        String answer = "";

        for(char c : testCase2) {
            answer += Character.toLowerCase(c);
        }
        System.out.println(answer);

        answer = "";
        for(char c : testCase2) {
            answer += Character.toUpperCase(c);
        }
        System.out.println(answer);
    }
}

 

 

 

 

join

객체나 배열을 합쳐 문자열을 만들고 싶을 때 혹은 문자열 사이에 어떤 값을 끼워 넣고 싶을 때, join을 이용한다. 

 

1. 문자열 사이사이에 값을 끼워 넣고 싶을때

public class Main {
    public static void main(String[] args) {
        String word1 = "Hello";
        String word2 = "World";

        String asnwer = String.join(" ", word1, word2);
        System.out.println(asnwer);
    }
}

// 출력
Hello World

 

 

2. 객체나 배열을 합쳐 문자열을 만들고 싶을 때

import java.util.*;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> testCase = new ArrayList<>();

        testCase.add("Hello");
        testCase.add("World");

        String answer = String.join(" ", testCase);
        System.out.println(answer);

    }
}

// 출력
Hello World

 

'Programing Language > Java' 카테고리의 다른 글

Optional  (0) 2024.05.24
Stream  (0) 2024.05.09
Thread (수정중)  (1) 2024.05.01
Collections Framework  (0) 2024.04.26
[Java] Java가 실행되는 과정과 JDK, JRE  (0) 2023.06.23

'Programing Language/Java'의 다른글

  • 현재글 String 객체

관련글