반응형

 

자바 - 문자열 다루기, String클래스의 메소드 및 사용예제

 

 

String클래스의 메소드들을 이용해서 여러가지 문자열을 다루는 방법에 대해서 사용예제와 함께 알아보도록 하겠습니다. 

 

 

   목차

  1. String클래스의 메소드로 문자열 다루기 1
    1. int length()
    2. boolean equals(Object anObject)
    3. boolean equalsIgnoreCase(String anotherString)
    4. int compareTo(String anotherString)
    5. boolean contains(CharSequence s)
    6. boolean startsWith(String prefix),  boolean startsWith(String prefix, int toffset)
    7. boolean endsWith(String suffix)
    8. String toUpperCase(),  String toLowerCase()
    9. String trim()
    10. char charAt(int index)
    11. int indexOf(String str),  int indexOf(String str, int fromIndex)
    12. int lastIndexOf(String str),  int lastIndexOf(String str, int fromIndex)
    13. String[] split(String regex),  String[] split(String regex, int limit)
    14. String substring(int beginIndex),  String substring(int beginIndex, int endIndex)
    15. String replace(CharSequence target, CharSequence replacement)
    16. 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)

  : 두 문자열이 같은지 여부를 비교한 후 그 결과를 반환합니다. 

  1. 포함되어 있으면 : true
  2. 포함되어 있지 않으면 : 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)

  : 대소문자의 구분없이 두 문자열이 같은지 여부를 비교한 후 그 결과를 반환합니다. 

  1. 포함되어 있으면 : true
  2. 포함되어 있지 않으면 : 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)

  : 두 문자열을 사전 순으로 비교한 결과를 반환합니다. 

  1. 두 문자열이 같을 경우 : 0
  2. 현재 문자열이 anotherString 문자열보다 먼저인 경우 : 음수(-)
  3. 현재 문자열이 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의 문자열이 포함되어 있는지 여부를 검사 후 결과를 반환합니다. 

  1. 포함되어 있으면 : true
  2. 포함되어 있지 않으면 : 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을 사용할 경우 해당 숫자 만큼 건너뛴후 검사를 진행합니다. 

  1. 포함되어 있으면 : true
  2. 포함되어 있지 않으면 : 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 문자열로 끝나는 검사후 결과를 반환합니다. 

  1. 포함되어 있으면 : true
  2. 포함되어 있지 않으면 : 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를 사용하면 해당 인덱스의 위치에서부터 검색을 시작합니다. 

  1. 포함되어 있으면 : 해당위치의 index값 
  2. 포함되어 있지 않으면 : -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를 사용하면 해당 인덱스의 위치에서부터 거꾸로 검색을 시작합니다. 

  1. 포함되어 있으면 : 해당위치의 index값 
  2. 포함되어 있지 않으면 : -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 클래스의 특징 (객체 생성방법에 따른 차이)

 

[Java] 자바 - String 클래스의 특징 (객체 생성방법에 따른 차이)

자바 - String 클래스의 특징 (객체 생성방법에 따른 차이) 처음 자바를 공부할때는 int, float, char와 같이 String도 마치 기본형처럼 생각했던 적이 있습니다. 아마도 프로그래밍을 처음 배울 때 가장

kadosholy.tistory.com

 

반응형

+ Recent posts