[Java] 자바 - 문자열 다루기, String클래스의 메소드 및 사용예제
자바 - 문자열 다루기, String클래스의 메소드 및 사용예제
String클래스의 메소드들을 이용해서 여러가지 문자열을 다루는 방법에 대해서 사용예제와 함께 알아보도록 하겠습니다.
목차
- String클래스의 메소드로 문자열 다루기 1
- int length()
- boolean equals(Object anObject)
- boolean equalsIgnoreCase(String anotherString)
- int compareTo(String anotherString)
- boolean contains(CharSequence s)
- boolean startsWith(String prefix), boolean startsWith(String prefix, int toffset)
- boolean endsWith(String suffix)
- String toUpperCase(), String toLowerCase()
- String trim()
- char charAt(int index)
- int indexOf(String str), int indexOf(String str, int fromIndex)
- int lastIndexOf(String str), int lastIndexOf(String str, int fromIndex)
- String[] split(String regex), String[] split(String regex, int limit)
- String substring(int beginIndex), String substring(int beginIndex, int endIndex)
- String replace(CharSequence target, CharSequence replacement)
- Static String join(CharSequence delimiter, CharSequence... elements)
1. String클래스의 메소드로 문자열 다루기 1
String클래스의 메소드들은 문자열 비교시 기본적으로 대소문자를 구분합니다. 그럼 자주 사용되는 메소드 위주로 살펴보도록 하겠습니다.
1) int length()
: 현재 문자열의 길이 값을 반환합니다.
String s1 = "ABC";
System.out.println(s1.length());
[실행결과]
3
2) boolean equals(Object anObject)
: 두 문자열이 같은지 여부를 비교한 후 그 결과를 반환합니다.
- 포함되어 있으면 : true
- 포함되어 있지 않으면 : false
String s1 = "ABC";
System.out.println(s1.equals("ABC"));
System.out.println(s1.equals("abc"));
System.out.println(s1.equals("XYZ"));
[실행결과]
true
false
false
3) boolean equalsIgnoreCase(String anotherString)
: 대소문자의 구분없이 두 문자열이 같은지 여부를 비교한 후 그 결과를 반환합니다.
- 포함되어 있으면 : true
- 포함되어 있지 않으면 : false
String s1 = "ABC";
System.out.println(s1.equalsIgnoreCase("ABC"));
System.out.println(s1.equalsIgnoreCase("abc"));
System.out.println(s1.equalsIgnoreCase("XYZ"));
[실행결과]
true
true
false
4) int compareTo(String anotherString)
: 두 문자열을 사전 순으로 비교한 결과를 반환합니다.
- 두 문자열이 같을 경우 : 0
- 현재 문자열이 anotherString 문자열보다 먼저인 경우 : 음수(-)
- 현재 문자열이 anotherString 문자열보다 나중인 경우 : 양수(+)
String s1 = "E";
System.out.println(s1.compareTo("A"));
System.out.println(s1.compareTo("a"));
System.out.println(s1.compareTo("E"));
System.out.println(s1.compareTo("e"));
System.out.println(s1.compareTo("Z"));
System.out.println(s1.compareTo("z"));
[실행결과]
4
-28
0
-32
-21
-53
5) boolean contains(CharSequence s)
: 현재 문자열에 매개변수 s의 문자열이 포함되어 있는지 여부를 검사 후 결과를 반환합니다.
- 포함되어 있으면 : true
- 포함되어 있지 않으면 : false
String s1 = "APPLE";
System.out.println(s1.contains("A"));
System.out.println(s1.contains("a"));
System.out.println(s1.contains("Z"));
[실행결과]
true
false
false
6) boolean startsWith(String prefix), boolean startsWith(String prefix, int toffset)
: 현재 문자열이 prefix 문자열로 시작하는지 검사 후 결과를 반환합니다. toffset을 사용할 경우 해당 숫자 만큼 건너뛴후 검사를 진행합니다.
- 포함되어 있으면 : true
- 포함되어 있지 않으면 : false
String s1 = "HelloJavaWorld";
System.out.println(s1.startsWith("Hello"));
System.out.println(s1.startsWith("hello"));
System.out.println(s1.startsWith("Java"));
System.out.println(s1.startsWith("Java", 5));
[실행결과]
true
false
false
true
7) boolean endsWith(String suffix)
: 현재 문자열이 suffix 문자열로 끝나는 검사후 결과를 반환합니다.
- 포함되어 있으면 : true
- 포함되어 있지 않으면 : false
String s1 = "HelloJavaWorld";
System.out.println(s1.endsWith("World"));
System.out.println(s1.endsWith("world"));
System.out.println(s1.endsWith("Java"));
[실행결과]
true
false
false
8) String toUpperCase(), String toLowerCase()
: 현재 문자열을 전부 대문자(UpperCase) 또는 소문자(LowerCase)로 반환합니다.
String s1 = "abcABC";
System.out.println(s1.toUpperCase());
System.out.println(s1.toLowerCase());
[실행결과]
ABCABC
abcabc
9) String trim()
: 현재 문자열의 앞뒤에 있는 공백을 없앤후 반환합니다.
String s1 = " AB CD EF ";
System.out.println(s1);
System.out.println(s1.trim());
[실행결과]
AB CD EF
AB CD EF
10) char charAt(int index)
: 해당 문자열의 index 위치에 있는 문자 한개를 반환합니다. index값은 배열의 인덱스와 마찬가지로 0부터 시작합니다.
String s1 = "ABCDEFG";
System.out.println(s1.charAt(3));
[실행결과]
D
11) int indexOf(String str), int indexOf(String str, int fromIndex),
: 현재 문자열내에 있는 첫번째 str 문자열의 시작위치를 찾아서 그 결과값을 반환합니다. fromIndex를 사용하면 해당 인덱스의 위치에서부터 검색을 시작합니다.
- 포함되어 있으면 : 해당위치의 index값
- 포함되어 있지 않으면 : -1
String s1 = "ABCDE-ABCDE";
System.out.print(s1.indexOf("D") + ", ");
System.out.print(s1.indexOf("d") + ", ");
System.out.print(s1.indexOf("Z") + ", ");
System.out.print(s1.indexOf("DE"));
System.out.printf("%n--------------%n");
System.out.print(s1.indexOf("D",2) + ", ");
System.out.print(s1.indexOf("D",3) + ", ");
System.out.print(s1.indexOf("D",4) + ", ");
System.out.print(s1.indexOf("D",5) + ", ");
System.out.print(s1.indexOf("D",10));
[실행결과]
3, -1, -1, 3
--------------
3, 3, 9, 9, -1
12) int lastIndexOf(String str), int lastIndexOf(String str, int fromIndex)
: 현재 문자열내에 있는 마지막 str 문자열의 시작위치를 찾아서 그 결과값을 반환합니다. fromIndex를 사용하면 해당 인덱스의 위치에서부터 거꾸로 검색을 시작합니다.
- 포함되어 있으면 : 해당위치의 index값
- 포함되어 있지 않으면 : -1
String s1 = "ABCDE-ABCDE";
System.out.print(s1.lastIndexOf("D") + ", ");
System.out.print(s1.lastIndexOf("d") + ", ");
System.out.print(s1.lastIndexOf("Z") + ", ");
System.out.print(s1.lastIndexOf("DE"));
System.out.printf("%n--------------%n");
System.out.print(s1.lastIndexOf("D",2) + ", ");
System.out.print(s1.lastIndexOf("D",3) + ", ");
System.out.print(s1.lastIndexOf("D",4) + ", ");
System.out.print(s1.lastIndexOf("D",5) + ", ");
System.out.print(s1.lastIndexOf("D",10));
[실행결과]
9, -1, -1, 9
--------------
-1, 3, 3, 3, 9
13) String[] split(String regex), String[] split(String regex, int limit)
: 현재 문자열을 정규식의 문자열 regex 로 구분하여 문자열 배열로 반환합니다. limit를 사용하면 구분갯수가 지정됩니다.
String s1 = "ABC-DEF-GHI";
String[] a1 = s1.split("-");
String[] a2 = s1.split("-", 2);
for (int i=0; i<a1.length; i++) {
System.out.println(a1[i]);
}
System.out.println("---");
for (int i=0; i<a2.length; i++) {
System.out.println(a2[i]);
}
[실행결과]
ABC
DEF
GHI
---
ABC
DEF-GHI
14) String substring(int beginIndex), String substring(int beginIndex, int endIndex)
: 현재 문자열의 beginIndex 위치부터 마지막까지 문자열을 반환합니다. endIndex를 사용하면 beginIndex부터 endIndex - 1 까지의 문자열을 반환합니다.
String s1 = "ABCDEFG";
System.out.println(s1.substring(2));
System.out.println(s1.substring(2,4));
[실행결과]
CDEFG
CD
15) String replace(CharSequence target, CharSequence replacement)
: 현재 문자열에 있는 target문자열을 replacement 문자열로 변경하여 반환합니다.
String s1 = "A+B+C+D+E";
System.out.println(s1.replace("+", "-"));
[실행결과]
A-B-C-D-E
16) Static String join(CharSequence delimiter, CharSequence... elements)
: elements 문자열 배열을 delimiter 문자열 구분자로 연결하여 하나의 문자열로 반환합니다.
String[] s1 = {"A", "B", "C"};
System.out.println(String.join("-", s1));
[실행결과]
A-B-C
2022.07.15 - [IT 개발/Java] - [Java] 자바 - String 클래스의 특징 (객체 생성방법에 따른 차이)