JAVA API "String" class
본문 바로가기
Java/API

JAVA API "String" class

by 조훈이 2021. 7. 26.

JAVA API "String" class


 String class 

  char 배열에 기능을 추가 한 클래스 이다. 문자를 연달아 놓은 것인 문자열이 저장이 된다. 하지만, char 배열과 다르게 수정이 불가능한 Immutable class 이다. 따라서 문자열을 다루는 작업이 많이 필요한 경우엔 String class 대신 StringBuffer Class를 사용하는 것이 좋다.


 method 

int length()

  문자열의 길이를 int type 으로 반환하는 method 이다.

System.out.print(" str의 길이 : ");
System.out.println(str.length());

char charAt(int idx)

  문자열에서 지정된 인덱스(idx)에 있는 문자(char type)를 알려준다.

System.out.print(" str[4] : ");
System.out.println(str.charAt(4));

int compareTo(String str)

  String 인스턴스 문자열과 매개변수로 받은 문자열을 사전순으로 비교한다. 같으면 0을 반환하고, 사전순으로 String 인스턴스가 이전이면 음수를, 이후면 양수를 반환한다.

System.out.print(" str과 \"HELLO\" 를 비교 : ");
System.out.println(str.compareTo("HELLO"));

String concat(String str)

  현재 String 인스턴스 문자열 뒤에 str 문자열을 붙인다.

System.out.print(" str 에 str2 붙이기 : ");
System.out.println(str.concat(str2));

  두 문자열을 붙이는 방법은 아래와 같이 덧셈 연산자'+'를 통해서도 가능하다.

System.out.print(" str 에 str2 붙이기 : ");
System.out.println(str + str2);

  하지만 덧셈연산자를 사용해서 두 문자열을 결합하게 되면, 바꾸는 String 인스턴스 내 문자열이 바뀌는 것이 아닌 새로운 문자열이 담긴 String 인스턴스가 생성이 되는 것 이기 때문에 메모리 공간을 차지하게 된다.


boolean contains(CharSequence str)

  현재 String 인스턴스 문자열에 지정된 문자열인 str 이 포함이 되어있는지 검사를 한다.

System.out.print(" str이 \"hello\"를 포함하는가? : ");
System.out.println(str.contains("hello"));

boolean startsWith(String str)
boolean endsWith(String str)

  지정된 문자열인 str로 시작하는지 / 끝나는지 검사를 한다. startsWith method 가 시작하는지, endsWith method 가 끝나는지 검사를 한다.

System.out.print(" str이 \"hello\" 로 시작하는지 / 끝나는지 : ");
System.out.print(str.startsWith("hello") + " / ");
System.out.println(str.endsWith("hello"));

boolean equals(String str)
boolean equalsIgnoreCase(String str)

  지정된 문자열 str 과 동일한지 검사를 한다. 위의 경우는 두 문자가 완벽히 동일한지 검사를 하고, 

System.out.print(" str과 str2 는 같은가? : ");
System.out.println(str.equals(str2));
System.out.print(" str과 str2 는 대소문자는 무시하고 같은가? : ");
System.out.println(str.equalsIgnoreCase(str2));

  이렇게 두 문자열이 같은지 여부를 판단하는 방법은 등가비교연산자인 '==' 를 활용하는 방법도 있다. 하지만 이는 String 인스턴스의 주소를 비교하는 연산이기 때문에 아래와 같이 equals method 와 다른 결과가 나올 수 있다.

String str1 = "johoonday";
String str2 = "johoonday";
String str3 = new String("johoonday");
String str4 = new String("johoonday");
		
System.out.println(" str1.equals(str2) : " + str1.equals(str2)); // true
System.out.println(" str1 == str2 : " + (str1 == str2)); // true
System.out.println(" str3.equals(str4) : " + str3.equals(str4)); // true
System.out.println(" str3 == str4 : " + (str3 == str4)); // false
 // 실행결과
 str1.equals(str2) : true
 str1 == str2 : true
 str3.equals(str4) : true
 str3 == str4 : false

int indexOf(int ch) // A
int indexOf(int ch, int pos) // B
int indexOf(String str) // C

  원하는 문자(ch)의 위치 [A], pos 위치 이후 원하는 문자(ch)의 위치 [B], 원하는 문자열(str) 의 위치[C] 를 나타내는 함수이다. 각각 파라미터 변수가 위와 같이 다르면서 이름은 같은 method 가 Overloading 되어있다.

String str = "abc Hello abcdefg";
		
System.out.print(" str 문장에서 'c' 문자가 처음 나오는 index : ");
System.out.println(str.indexOf('c'));
System.out.print(" str 문장에서 5번째 index 이후 'c' 문자가 처음 나오는 index : ");
System.out.println(str.indexOf('c', 5));
System.out.print(" str 문장에서 Hello 문장이 처음 나오는 index : ");
System.out.println(str.indexOf("Hello"));
 // 실행 결과
 str 문장에서 'c' 문자가 처음 나오는 index : 2
 str 문장에서 5번째 index 이후 'c' 문자가 처음 나오는 index : 12
 str 문장에서 Hello 문장이 처음 나오는 index : 4

int lastIndexOf(int ch)
int lastIndexOf(String str)

  위의 경우는 원하는 문자(ch) 가 처음 나온 index 의 값, 아래의 경우는 원하는 문자열(str)이 처음 나온 index의 값을 반환한다.

System.out.print(" str 문장에서 'c' 문자가 마지막으로 나오는 index : ");
System.out.println(str.lastIndexOf('c'));
System.out.print(" str 문장에서 Hello 문장이 마지막으로 나오는 index : ");
System.out.println(str.lastIndexOf("Hello"));

String replace(char old, char new)
String replace(String old, String new)
String replaceFirst(String old, String new)

  두 replace method 는, String 인스턴스의 문자열에서 파라미터로 받은 old 문자/문자열에 해당되는 부분을 new 문자/문자열로 변환시킨다.

String str = "DDaacDDaac";
		
System.out.print(" str 에서 모든 'c'를 'z'로 변경 : ");
System.out.println(str.replace('c', 'z'));
System.out.print(" str 에서 모든 \"DD\" 를 \"dd\" 로 변경 : ");
System.out.println(str.replace("DD", "dd"));
System.out.print(" str 에서 첫 번째로 나오는 \"aa\"를 \"AA\" 로 변경 : ");
System.out.println(str.replaceFirst("aa", "AA"));
 // 실행 결과
 str 에서 모든 'c'를 'z'로 변경 : DDaazDDaaz
 str 에서 모든 "DD" 를 "dd" 로 변경 : ddaacddaac
 str 에서 첫 번째로 나오는 "aa"를 "AA" 로 변경 : DDAAcDDaac

String toLowerCase()
String toUpperCase()

  String  임피던스의 문자열의 알파벳들을 모두 소문자 / 대문자 로 바꾸는 method 이다.

String str = "Hello I'm Johoonday";
		
System.out.print(" str 문장의 모든 알페벳들을 모두 소문자로 : ");
System.out.println(str.toLowerCase());
System.out.print(" str 문장의 모든 알페벳들을 모두 대문자로 : ");
System.out.println(str.toUpperCase());
 // 실행 결과
 str 문장의 모든 알페벳들을 모두 소문자로 : hello i'm johoonday
 str 문장의 모든 알페벳들을 모두 대문자로 : HELLO I'M JOHOONDAY

String substring(int begin)
String substring(int begin, int end)

  String 인스턴스의 문자열에서 원하는 구간의 sub String 을 반환한다. 위 method 는 begin index 부터 문자열의 마지막까지의 sub String 을 반환하고, 아래 method 는 begin index 부터 end index 까지의 sub String 을 반환한다.

String str = "aabbccAABBCC";
		
System.out.print(" 5번째 index 이후의 sub String : ");
System.out.println(str.substring(5));
System.out.print(" 5번째 index 부터 9번째 index 까지의 sub String : ");
System.out.println(str.substring(5, 9));
 // 실행 결과
 5번째 index 이후의 sub String : cAABBCC
 5번째 index 부터 9번째 index 까지의 sub String : cAAB

String trim()

  문자열의 좌측 끝과 우측 끝의 공백들을 모두 없앤 문자열을 반환한다.

String str = "      JH       ";
		
System.out.print(" str 문장의 좌 우 공백을 모두 제거한 문자열 : ");
System.out.println("\"" + str.trim() + "\"");
 // 실행 결과
 str 문장의 좌 우 공백을 모두 제거한 문자열 : "JH"

 method 모음 

int length()// 문자열의 길이
char charAt(int idx) // 문자열에서 idx 위치에 있는 문자
int compareTo(String str) // 두 문자열을 비교하고 결과에 맞게 정수형으로 반환
String concat(String str) // str 문자열을 뒤에 덧붙인다
boolean contains(CharSequence str) // 지정된 문자열 str 이 포함되는지 검사

boolean startsWith(String str) // 지정된 문자열 str 로 시작하는지 검사
boolean endsWith(String str) // 지정된 문자열 str 로 끝나는지 검사

boolean equals(String str) // 지정된 문자열 str 과 같은지 검사
boolean equalsIgnoreCase(String str) // 지정된 문자열 str 과 대소문자 구분 없이 같은지 검사

int indexOf(int ch) // 지정된 문자 ch 가 처음 나온 곳의 index 값 반환
int indexOf(int ch, int pos) // pos index 이후 지정된 문자 ch 가 처음 나온 곳의 index 값 반환
int indexOf(String str) // 지정된 문자열 str 이 처음 나온 곳의 index값 반환
int lastIndexOf(int ch) // 지정된 문자 ch 가 마지막으로 나온 곳의 index 값 반환
int lastIndexOf(String str) // 지정된 문자열 str 이 마지막으로 나온 곳의 index 값 반환

String replace(char old, char new) // 문자열에서 old 문자에 해당되는 모든 문자들을 new 문자로 변환
String replace(String old, String new) // 문자열에서 old 문자열에 해당되는 모든 문자열들을 new 문자열로 변환
String replaceFirst(String old, String new) // 위 replace method 에서 처음에 나온 old 문자열만 new 문자열로 변환

String toLowerCase() // 모든 알파벳들을 소문자로 변환
String toUpperCase() // 모든 알파벳들을 대문자로 변환

String substring(int begin) // begin index 에 해당되는 곳 부터 sub String 을 반환
String substring(int begin, int end) // begin index 부터 end index 까지의 sub String 을 반환

String trim() // 좌 우의 공백을 제거한 String 을 반환
728x90

댓글