티스토리 뷰

반응형

이번 포스팅에서는 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
ㅁㄴㅇ

반응형