--> [JAVA] 자바 String Class 문자열 처리 함수에 대한 정리

[JAVA] 자바 String Class 문자열 처리 함수에 대한 정리

이번 포스팅에서는 String Class의 문자열 처리와 관련된 함수에 대해 정리를 해보겠습니다.

  1. char charAt(int index)


s1.charAt(index)는 s1 문자열에서 index 번째에 해당하는 문자를 반환하는 함수입니다. 문자열에서 index는 0에서부터 시작합니다.


1
2
3
4
5
6
7
8
9
10
11
12
public class Sample
{
    public static void main(String[] args)
    {
        String s = "Hello";
        System.out.println("0번째 index에 해당하는 char : " + s.charAt(0));
        System.out.println("1번째 index에 해당하는 char : " + s.charAt(1));
        System.out.println("2번째 index에 해당하는 char : " + s.charAt(2));
        System.out.println("3번째 index에 해당하는 char : " + s.charAt(3));
        System.out.println("4번째 index에 해당하는 char : " + s.charAt(4));
    }
}
cs


▼ charAt 함수를 사용하여 "Hello" 문자열을 문자 하나하나 출력하는 예제입니다. 중요한 포인트는 문자열의 index는 0에서부터 시작한다는 것입니다.


  2. char compareTo(s2)


s1.compareTo(s2)는 s1이 문자열 s2에 비해 사전 순으로 앞에 올 경우 음수가 오고 동일할 경우 0이 오고 뒤에 올 경우 양수가 옵니다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Sample
{
    public static void main(String[] args)
    {
        String s1 = "Hello";
        String s2 = "Hello";
        String s3 = "AHello";
        String s4 = "ZHello";
 
        //사전순으로 동일하게 때문에 0 반환
        System.out.println(s1.compareTo(s2));
 
        //사전순으로 s3가 앞에오기 때문에 양수 반환
        System.out.println(s1.compareTo(s3));
        
        //사전순으로 s3가 뒤에오기 때문에 음수 반환
        System.out.println(s1.compareTo(s4));
    }
}
cs


▼ 비슷한 함수로 compareToIgnoreCase 함수가 있는데 이 함수는 두 문자열을 비교할 때 대소문자를 구분하지 않습니다.


  3. String concat(String s)


concat 함수는 두 문자열을 합친 새로운 문자열을 반환하는 함수입니다. s1.concat(s2)가 있을 때 s1에 s2를 추가한 문자열을 결과로 반환합니다.


1
2
3
4
5
6
7
8
9
10
public class Sample
{
    public static void main(String[] args)
    {
        String s1 = "Hello ";
        String s2 = "LKT Programmer!";
 
        System.out.println(s1.concat(s2));
    }
}
cs


  4. boolean endsWith(string s)


s1.endswith(s2)에서 s2가 s1의 접미사이면 참을 반환합니다. 예를 들어 String s1= "Hello Programmer"이고 String s2 = "Programmer"라면 s1.endsWith(s2)는 참을 반환하게 됩니다.


1
2
3
4
5
6
7
8
9
10
public class Sample
{
    public static void main(String[] args)
    {
        String s1 = "Hello Programmer";
        String s2 = "Programmer";
 
        System.out.println(s1.endsWith(s2));
    }
}
cs


▼ 같은 개념으로 startsWith 함수도 있습니다. s1.startsWith(s2)가 있을 때 s2가 s1의 접두사면 참을 반환하는 함수입니다.


  5. boolean equals(object s)


s1.equals(s2)는 s1과 s2가 동일한 문자열이면 true를 반환합니다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Sample
{
    public static void main(String[] args)
    {
        String s1 = "hello";
        String s2 = "hello";
        String s3 = "HELLO";
        
        //두 문자열은 "hello"로 동일하기 때문에 true
        System.out.println(s1.equals(s2));
        //equals는 대소문자를 구분하기 때문에 false
        System.out.println(s1.equals(s3));
    }
}
cs


▼ equals 함수는 대소문자를 구분하기 때문에 12번 라인의 출력물은 false가 됩니다. 만약 대소문자를 구분하지 않고 문자열을 비교하고 싶다면 equalsIgnoreCase 함수를 사용하도록 합니다.


  6. indexOf(String s) / indexOf(String s, int from)


s1.indexOf(s2)는 s1에서 s2 문자열이 나타나기 시작하는 처음 인덱스를 반환합니다. 찾지 못하면 -1을 반환합니다. s1.indexOf(s2, from)은 s1 문자열에서 from 인덱스 이후로 s2 문자열이 처음 나타나는 인덱스를 반환합니다. 마찬가지로 찾지 못하면 -1을 반환하게 됩니다.


1
2
3
4
5
6
7
8
9
10
11
public class Sample
{
    public static void main(String[] args)
    {
        String s1 = "hello world";
        String s2 = "world";
 
        //"world" 문자열이 나타나는 인덱스는 6번째 이므로 6을 반환
        System.out.println(s1.indexOf(s2));
    }
}
cs


1
2
3
4
5
6
7
8
9
10
11
12
public class Sample
{
    public static void main(String[] args)
    {
        String s1 = "hello world world";
        String s2 = "world";
 
        // 7번째 인덱스 이후로 나오는 "world"를 찾으므로
        // s1의 두번째 world의 시작 인덱스인 12를 반환함
        System.out.println(s1.indexOf(s2,7));
    }
}
cs


  7. int length()


s1.length()는 s1 문자열에 있는 공백을 포함한 모든 문자 수를 반환합니다. 간단한 것이므로 샘플 예제는 생략하고 String s1 = "Hello World"이 있을 대 s1.length()는 11을 반환합니다.


  8. String replace(char oldchar, char newchar)


s1.replace('s','b')가 있을 때 문자열 s1에 문자 's'를 'b'로 대체한 전체 문자열을 반환해주는 함수입니다. String s1 = "ababab"가 있을 때 s1.replace('a','b')를 하게 되면 반환되는 문자열로 "bbbbbb"가 됩니다.


1
2
3
4
5
6
7
8
9
10
11
public class Sample
{
    public static void main(String[] args)
    {
        String s1 = "ababab";
        
        // s1 문자열의 'a' 문자를 'b'문자로 대체하기 때문에
        // "bbbbbb"라는 문자열이 출력 됨.
        System.out.println(s1.replace('a''b'));
    }
}
cs


  9. 대소문자 변경


toLowerCase 함수는 문자열의 모든 대문자를 소문자로 변경해주는 함수입니다. 반면 toUpperCase 함수는 문자열의 모든 소문자를 대문자로 변경해주는 함수입니다. 아래 샘플 예제를 참고해주세요.


1
2
3
4
5
6
7
8
9
10
11
12
13
public class Sample
{
    public static void main(String[] args)
    {
        String s1 = "aaaaaa";
        String s2 = "AAAAAA";
 
        // 소문자를 대문자로 변경. "aaaaaa" -> "AAAAAA"
        System.out.println(s1.toUpperCase());
        // 대문자를 소문자로 변경. "AAAAAA" -> "aaaaaa"
        System.out.println(s2.toLowerCase());
    }
}
cs
ㅁㄴㅇ

댓글(0)

Designed by JB FACTORY