Java - 자바 String 사용법
안녕하세요.
이번 포스팅은 자바에서 문자열을 다룰 때 쓰는 String 클래스에 대해서 알아보겠습니다.
객체 선언 및 정의
String str = "Hello";
String str2 = new String("Hello");
문자열 길이
String str = "hello";
System.out.println(str.length()); // 5 출력
문자열 더하기
String concat(String str)
- str 문자열을 현재 문자열 뒤에 붙인다.
문자열은 + 연산자로도 붙일 수 있다.
String str1 = "Hello" + " World";
String str2 = "Hello".concat(" World");
System.out.println(str1);
System.out.println(str2);
empty 체크
문자열의 길이가 0일때 true입니다.
String str = new String();
System.out.println(str.isEmpty()); //true
String str2 = "";
System.out.println(str2.isEmpty()); // true
String str3 = "abc";
System.out.println(str3.isEmpty()); // false
문자열에서 char 값이 필요할 때
char charAt(int index)
- 문자열의 해당 index에 해당하는 char를 return한다.
char[ ] toCharArray()
- 문자열을 char 배열로 변환한다.
주로 문자열 루프돌면서 처리할때 자주 쓰인다.
String str1 = "abc";
char[] charArray = str1.toCharArray();
for (int i = 0; i < charArray.length; i++) {
System.out.println(charArray[i]);
}
for (int i = 0; i < str1.length(); i++) {
System.out.println(str1.charAt(i));
}
결과
a
b
c
a
b
c
문자열 비교
boolean equals(Object object)
- 문자열이 동일하면 true를 return한다.
String str1 = "abcd";
String str2 = "abcd";
System.out.println(str1.equals(str2)); //true
Tip: equals는 위의 코드와 같은 방식은 NullPointException이 발생할 수 있으므로
org.apache.commons.lang.StringUtils를 사용하거나 아래와 같이 작성한다.
public boolean isAA(String str) {
if ("AA".equals(str)) {
return true;
}
return false;
}
문자열 검색
int indexOf(String str)
- 해당 문자열의 위치를 return한다 (없으면 -1 return)
boolean contains(CharSequence s)
- 해당 문자열을 포함하고 있는지 여부
boolean startsWith(String prefix)
- prefix 문자열로 시작하는지 여부
boolean endsWith(String suffix)
- suffix 문자열로 끝나는지 여부
String str1 = "abcd";
System.out.println(str1.indexOf("c")); // 2
System.out.println(str1.indexOf("e")); // -1
System.out.println(str1.contains("a")); // true
System.out.println(str1.contains("e")); // false
System.out.println(str1.startsWith("ab")); // true
System.out.println(str1.startsWith("abd")); // false
System.out.println(str1.endsWith("cd")); // true
System.out.println(str1.startsWith("acd")); // false
문자열 나누기
String[] split(String regex)
- 정규표현식을 기준으로 문자열을 나눈다.
String str ="AA;BB;CC";
String[] arr = str.split(";");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
결과
AA
BB
CC
문자열 치환
String replace(char oldChar, char newChar)
- oldChar 문자열을 newChar 문자열로 바꾼다.
String str1 = "ABCAADDEA";
String str2 = str1.replace("A", "a"); // str1의 모든 A 문자열을 a 로 바꾼다.
System.out.println(str2); // aBCaaDDEa
형변환
String valueOf(int i)
String valueOf(double d)
String valueOf(boolean b)
...
- int값을 String으로 변환한다.
boolean, double, long, float, char 등도 제공한다.
int i = 1;
String str1 = String.valueOf(i);
System.out.println(str1); // 1
double d = 0.2;
String str2 = String.valueOf(d);
System.out.println(str2); // 0.2