티스토리 뷰
이번 포스팅에서는 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 |
'Programming > JAVA' 카테고리의 다른 글
[JAVA] 자바 - 문자열 자르기 (split 메소드 활용) (0) | 2019.04.07 |
---|---|
[JAVA] 자바 - 문자열 자르기 #1 (substring) (0) | 2019.04.06 |
[JAVA] TCP 소켓 프로그래밍 02 - 간단한 채팅 프로그램 구현 (14) | 2017.10.19 |
[JAVA] 예외처리 (try~catch~fivally) (0) | 2017.10.17 |
[JAVA] TCP 소켓 프로그래밍 01 - Server/Client 일대일 연결 (2) | 2017.10.16 |