개발 지식 기록/JAVA

[메서드 정리] String

엉망진창좌충우돌 2023. 8. 6. 16:15

◎ charAt(int index)

해당 index에 있는 문자를 알려준다(char)

String str = "Hello";
char c = str.charAt(1); // c='e'

 

◎ compareTo(String str)

문자열(str)과 사전 순서로 비교. 같으면 0, 사전 순으로 이전이면 음수, 이후면 양수 반환

int i = "aaa".compareTo("aaa"); // i=0
int i2 = "aaa".compareTo("bbb"); // i=-1
int i3 = "bbb".compareTo("aaa"); // i=1

 

◎ concat(String str)

문자열(str)을 뒤에 덧붙인다.

String s = "Hi";
String s2 = s.concat(" Friend"); // s2="Hi Friend"

 

◎ contains(Char sequence s)

지정된 문자열(s)이 포함되었는지 검사

String s = "abcd";
boolean b = s.contains("bc"); //b=true;

 

◎ startsWith(String prefix) / endsWith(String suffix)

지정된 문자열(prefix/suffix)로 시작하는지/끝나는지 검사

String s = "java.lang.Object";
boolean b = s.startsWith("java"); //b=true
boolean b2 = s.startsWith("lang"); //b2=false

boolean b3 = s.endsWith("Object"); //b3=true

 

◎ equals(Object obj) / equalsIgnoreCase(String str)

매개변수로 받은 문자열(obj)과 String 인스턴스의 문자열을 비교. obj가 String이 아니거나 문자열이 다르면 false 반환

equalsIgnoreCase는 문자열과 String인스턴스의 문자열을 대소문자 구분없이 비교

String s = "Hello";
boolean b = s.equals("Hello"); //b = true
boolean b2 = s.equals("hello"); //b2= false
boolean b3 = s.equalsIgnoreCase("hello"); //b3 = true

 

◎ indexOf / lastIndexOf

주어진 문자, 문자열이 존재하는지 확인하여 해당 index를 알려준다. 없으면 -1 반환

lastIndexOf는 지정된 문자, 문자열을 오른쪽 끝에서부터 찾아서 위치를 반환. 못찾으면 -1 반환

String s = "ABCDEFG";
int idx1 = s.indexOf('E');//inx1 = 4
int idx2 = s.indexOf('B',2);//idx2 = -1 (,뒤부터 탐색)
int idx3 = s.indexOf("CD");//idx3 = 2

String s1 = "java.lang.Object";
int idx4 = s1.lastIndexOf('.'); //inx4 = 9
int idx5 = s1.lastIndexOf('java'); //inx5 = 4
int idx6 = s1.indexOf('.'); //inx6 = 10
int idx7 = s1.indexOf('java'); //inx7 = 0

 

◎ length()

문자열의 길이를 알려준다.

String s = "Hello";
int length = s.length(); //length = 5

 

◎ replace / replaceAll / replaceFirst

문자열 중의 문자/문자열을 새로운 문자/문자열로 모두 바꾼 문자열을 반환한다.

replace는 첫번째 값으로 바꿀 문자열을 입력받는 대신 첫 번째 인자 값으로 정규식이 들어가서 특수문자로도 치환 가능. replaceAll은 특수문자로 치환이 어렵다

(출처 : [Java] 문자열 치환(Replace) 사용법 & 예제 (tistory.com))

replaceFirst 는 문자열 중에서 지정된 문자열과 일치하는 것 중, 첫 번째 것만 새로운 문자열로 변경.

String s = "Hello";
String s2 = s.relace('H','C') //s2 = "Cello"

String s3 = "Hellollo";
String s4 = s3.relace("ll","LL");//s4 = "HeLLoLLo"

String s5 = "AABBAABB";
String s6 = s5.replaceAll("BB","bb"); //s6 = "AAbbAAbb"
String s7 = s5.replaceFirst("BB","bb"); //s7 = "AAbbAABB"

 

◎ split

문자열을 지정된 분리자로 나누어 문자열 배열에 담아 반환

String animal = "dog,cat,bear";
String[] arr = animal.split(","); //arr[0] = "dog" , arr[1] = "cat", arr[2] = "bear"
String[] arr2 = animal.split(",",2); //문자열 전체를 지정된 수로 자른다. arr[0] = "dog" , arr[1] = "cat", "bear"

 

◎ substring

 주어진 시작 위치부터 끝 위치 범위에 포함된 문자열을 얻는다.(시작위치는 포함되지만 끝 위치는 포함 X)

String s = "java.lang.Object";
String c = s.substinrg(10); //c = "Object"
String p = s.substinrg(5,9); //p ="lang"

 

◎ toLowerCase / toUpperCase

String 인스턴스에 저장되어 있는 모든 문자열을 소문자/대문자로 변환하여 반환

String s = "Hello";
String s1 = s.toLowerCase(); //s1 = "hello"
String s2 = s.toUpperCase(); //s2 = "HELLO"

 

◎ toString

String 인스턴스에 저장되어 있는 문자열 반환

String s = "Hello";
String s1 = s.toString(); //s1="Hello"

 

◎ trim

문자열 왼쪽 끝과 오른쪽 끝에 있는 공백을 없앤 결과 반환(중간 공백은 X)

String s = "            Hel lo    ";
String s1 = s.trim(); //s1="Hel lo"

 

◎valueOf

지정된 값을 문자열로 변환하여 반환. 참조변수의 경우 toString을 호출한 결과를 반환

String s = String.valueOf(100); //s ="100"