C언어에서는 문자열을 char형 배열로 표현하지만, 자바에서는 문자열을 위한 String이라는 클래스를 별도로 제공한다.
String클래스에는 문자열과 관련된 작업을 할 때 유용하게 사용할 수 잇는 다양한 메서드가 포함되어있다.
이러한 String클래스는 java.lang 패키지에 포함되어 제공된다.
chatAt()메서드는 해당 문자열의 특정 인덱스에 해당하는 문자를 반환한다.
만약 해당 문자열의 길이보다 큰 인덱스나 음수를 전달하면, IndexOutOfBoundExceoption 오류가 발생한다.
String str = new String("Java");
System.out.println("원본 문자열 : " +str); //원본문자열 : Java
for(int i =0; i< str.length(); i++){
System.out.print(str.charAt(i) + " "); //J a v a
}
System.out.println(charAt()메서드 호출 후 원본 문자열 : " + str); //charAt()메서드 호출 후 원본 문자열 : Java
이 메서드는 해당 문자열을 인수로 전달된 문자열과 사전 편찬 순으로 비교합니다.
이 메소드는 문자열을 비교할 때 대소문자를 구분하여 비교합니다.
만약 두 문자열이 같다면 0을 반환하며,해당 문자열이 인수로 전달된 문자열보다 작으면 음수를,크면 양수를 반환합니다.
만약 문자열을 비교할 때 대소문자를 구분하지 않기를 원한다면, compareToignoreCase()메서드를 사용하면 된다.
public class compareToTest {
public static void main(String[] args) {
String str = new String("abcd");
System.out.println("원본 문자열 : " + str); //원본 문자열 : abcd
System.out.println(str.compareTo("bcef")); // 인수 abcd는 해당문자열 bcef 보다 1만큼 작으니까 -1
System.out.println(str.compareTo("abcd")); // 인수 abcd는 해당문자열 abcd 와 같으므로 0
System.out.println(str.compareTo("Abcd")); // 인수 abcd는 해당문자열 Abcd 보다 32먄큼 크므로 32
System.out.println(str.compareToIgnoreCase("Abcd")); ///compareToIgnoreCase()메서드를 사용하여 대,소문자 구분이 사라졌으니 0
System.out.println("compareTo() 메소드 호출 후 원본 문자열 : " + str); //compareTo() 메소드 호출 후 원본 문자열 : abcd
}
}
concat()메서드는 해당 문자열의 뒤에 인수로 전달된 문자열을 추가한 새로운 문자열을 반환합니다.
만약 인수로 전달된 문자열의 길이가 0이면, 해당 문자열을 그대로 반환한다.
public class ConcatTest {
public static void main(String[] args) {
String str = new String("Java");
System.out.println("원본문자열 : " + str); //원본문자열 : Java
System.out.println(str.concat("수업")); //Java수업
System.out.println("concat()메서드 후 원본문자열 : " + str); //concat()메서드 후 원본문자열 : Java
}
}
indexOf()메서드는 해당 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환한다.
만약 해당 문자열에 전달된 문자나 문자열이 포함되어 있지 않으면 -1을 반홚나다.
public class IndexOfTest {
public static void main(String[] args) {
String str = new String("Oracle Java");
System.out.println("원본 문자열 : " + str); //원본 문자열 : Oracle Java
System.out.println(str.indexOf('o')); //소문자 o는 인수에 없으므로 -1을 출력
System.out.println(str.indexOf('a')); //소문자 a는 인수에서 [2]번째 있으므로 2 출력
System.out.println(str.indexOf("Java")); //문장 Java는 띄어쓰기를 초함하여 [7]번째 있으므로 7 출력
System.out.println("indexOf() 메소드 호출 후 원본 문자열 : " + str); //indexOf() 메소드 호출 후 원본 문자열 : Oracle Java
}
}
이와 같이 String클래스의 메서드는 매우 다양하며, 추후에 문제를 풀거나 공부하면서 Stirng클래스의 메서드를 다시 공부하겠습니다.