String 란?
: 문자열을 나타내는 클래스
String 인스턴스는 한 번 생성되면 그 값을 '읽기'만 가능하다(변경 불가)(=불변객체라고도 함)
//String 사용법
public class Main {
public static void main(String args[]){
String name = "Rimmee";
System.out.println("name : " + name); // 출력값 --> name : Rimmee
String name2 = "rim".substring(1,3); // substring(int a, int b) -> 문자열 자르기
System.out.println(name2);// 출력값 --> im
}
}
String 클래스의 메소드
1) length()
: 문자열의 길이를 반환하는 메소드
// length 메소드
public class Main {
public static void main(String args[]){
String name = "Rimmee";
System.out.println(name.length()); // 출력값 -> 6
}
}
2) isEmpty()
: 문자열의 길이가 0이면 true를 반환하고, 아니면 false를 반환하는 메소드
// isEmpty() 메소드
public class Main {
public static void main(String args[]){
String name = "Rimmee";
String name2 = "";
System.out.println(name.isEmpty()); // 출력값 -> false
System.out.println(name2.isEmpty()); // 출력값 -> true
}
}
3) charAt()
: 문자열의 특정 인덱스에 해당하는 문자를 반환하는 메소드
해당 문자열의 길이보다 큰 인덱스나 음수를 전달하면, IndexOutOfBoundsException 오류가 발생한다.
// charAt() 메소드
public class Main {
public static void main(String args[]){
String name = "Rimmee";
System.out.println(name.charAt(3)); // 출력값 : m
System.out.println(name.charAt(5)); // 출력값 : e
System.out.println(name.charAt(6)); // IndexOutOfBoundsException 오류 발생
System.out.println(name.charAt(-1));// IndexOutOfBoundsException 오류 발생
}
}
* 인덱스의 범위는 0부터 length() - 1까지이다.
4) equals()
: 문자열을 참조변수와 비교하는 메소드, 같으면 true를 반환하고 아니면 false를 반환한다.
// equals() 메소드
public class Main {
public static void main(String args[]){
String name = "Rimmee";
System.out.println(name.equals("Rimmee")); // 출력값 : true
System.out.println(name.equals("apple")); // 출력값 : false
System.out.println(name.equalsIgnoreCase("rimmee")); // 출력값 : true
}
}
* equalsIgnoreCase 를 사용하면 대소문자 구분없이 비교할 수 있다.
5) compareTo()
: 문자열을 사전순으로 비교하는 메소드(같은 위치의 문자열을 비교한다.)
// compareTo() 메소드
public class Main {
public static void main(String args[]){
String name = "Rimmee";
System.out.println(name.compareTo("Rimmee")); // 출력값 -> 0
System.out.println(name.compareTo("Rimm")); // 출력값 -> 2
System.out.println(name.compareTo("Ri")); // 출력값 -> 4
System.out.println(name.compareTo("a")); // 출력값 -> -15
System.out.println(name.compareToIgnoreCase("rimmee")); // 출력값 -> 0
}
}
* 문자열이 같으면 '0'을 리턴해준다.
기준값에 비교대상이 일부 포함되어 있는 경우, 문자열 길이의 차이값을 리턴해준다.
"Rimmee"와 "a"를 비교했을 때 출력값이 -15가 나오는 이유는, 비교 불가능한 지점의 아스키 코드 값을 기준으로
비교하기 때문이다.(a -> 97 / R -> 82이므로 82 - 97 = -15)
* compareToIgnoreCase 를 사용하면 대소문자 구분없이 비교할 수 있다.
6) indexOf()
: 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환하는 메소드
만약 문자열에 전달된 문자나 문자열이 포함되어 있지 않으면 -1을 반환한다.
// indecOf() 메소드
public class Main {
public static void main(String args[]){
String name = "Rimmee";
System.out.println(name.indexOf("i")); // 출력값 -> 1
System.out.println(name.indexOf("a")); // 출력값 -> -1
}
}
7) Substring()
: 문자열에서 임의의 문자열을 추출하는 메소드
해당 문자열의 길이보다 큰 인덱스나 음수를 전달하면, IndexOutOfBoundsException 오류가 발생한다.
//subString() 메소드
public class Main {
public static void main(String args[]){
String name = "Rimmee";
System.out.println(name.substring(1)); // 출력값 -> immee
System.out.println(name.substring(1,4)); // 출력값 -> imm
System.out.println(name.substring(7)); // StringIndexOutOfBoundsException 오류 발생 ( 범위 초과 )
}
}
* 받은 인수가 1개인 경우, 시작되는 인덱스 지점을 가리킨다.
* 받은 인수가 2개인 경우, subString(from, to) 로 사용되는데, 이 경우 from부터~to미만까지의 문자열을 반환한다.
8) concat()
: 지정된 문자열을 해당 문자열 끝에 추가해주는 메소드
//concat() 메소드
public class Main {
public static void main(String args[]){
String str = "my";
System.out.println(str.concat("house")); // 출력값 -> myhouse
String first = "A ";
String middle = "happy ";
String last = "Day!";
System.out.println(first.concat(middle.concat(last))); // 출력값 -> A happy Day!
}
}
9) replace()
: 변경하고 싶은 문자로 문자열을 치환해주는 메소드
//replace() 메소드
public class Main {
public static void main(String args[]){
String str = "my house";
System.out.println(str.replace("m","b")); // 출력값 -> by house
}
}
10) toUpperCase(), toLowerCase()
: 해당 문자열을 대문자 / 소문자로 변경해주는 메소드
//toUpperCase(), toLowerCase() 메소드
public class Main {
public static void main(String args[]){
String str = "my house";
String str2 = "HAPPY DAY!";
System.out.println(str.toUpperCase()); // 출력값 -> MY HOUSE
System.out.println(str2.toLowerCase()); // 출력값 -> happy day!
}
}
11) trim()
: 앞, 뒤 공백을 제거해주는 메소드(중간에 있는 공백은 제거되지 않음)
//trim() 메소드
public class Main {
public static void main(String args[]){
String str = " my house ";
System.out.println(str.trim()); // 출력값 : "my house"
}
}
출처
'Java 개념정리' 카테고리의 다른 글
[Java] Queue (0) | 2022.10.04 |
---|---|
[Java] Stack (0) | 2022.10.02 |
[java] Dynamic Programming(DP / 동적 계획법) (0) | 2022.09.27 |
[Java] 변수 (0) | 2022.08.17 |
[Java] Math 클래스 (0) | 2022.08.11 |