언어 공부 내용 정리/Java

자바 문자열(String) 주요 메소드

wosrn 2023. 6. 2. 19:52

String 생성자

String()빈 스트링 객체 생성
String(Char[] value)char 배열에 포함된 문자들을 스트링객체로 생성
String(String original)인자로 주어진 스트링과 똑같은 스트링 객체 생성
String(StringBuffer buffer)스트링버퍼에 포함된 문자들을 스트링객체로 생성

 
 

String 주요 메소드

메소드기능리턴타입
charAt()지정된 인덱스의 문자를 반환char
compareTo()해당 문자열을 인수로 전달된 문자열과 사전 순으로 비교 -> 같으면 0, 문자열이 매개변수의 문자열보다 길이가 짧거나 순서가 앞이면 음수, 길이가 길거나 뒤이면 양수값을 반환함int
concat()문자열의 끝에 매개변수의 문자열을 추가 -> 결합된 문자열을 반환String
contains()문자열에 일련의 문자가 포함되어 있는지 확인boolean
equals()두 문자열을 비교 -> 같으면 true 다르면 falseboolean
indexOf()문자열에서 매개변수의 문자가 첫번째로 발견되는 위치를 반환int
isEmpty()문자열이 비어있는지 확인boolean
lastIndexOf()문자열에서 매개변수의 문자가 마지막으로 발견되는 위치를 반환int
length()지정한 문자열의 길이를 반환int
replace(target  , replacement )문자열에서 지정된 값을 검색, 지정된 값을 대체값으로 교체한 후 수정된 문자열을 반환String
replaceAll(regex , replacement )지정된 정규식과 일치하는 문자열의 각 하위 문자열을 지정된 대체 문자열로 바꿈

*정규표현식이라는 특수한 인자값 때문에 특수기호를 사용함에 있어 제약이 걸릴 수 있음 - 특수기호를 변경할때는 replace 사용을 권장 (특수기호를 문자 그대로로 보지 않고 토큰으로 사용함)
String
split(regex, int limit)문자열을 매개변수의 문자를 기준으로 문자열을 잘라서 배열에 넣음

*두번째 인자값이 있다면 그 인자값은 배열의 크기를 저장한다(배열의 크기가 남아있는 만큼 나누고 배열 크기를 다 썼을때까지 나누지 못한 부분은 마지막 인덱스에 한번에 저장)

*인자로 들어가는 String 토큰이 regex 정규식이기 때문에 기호를 split의 인자로 쓸 때 작동을 안하면 \\을 붙여보자 (일부는 \)
String[]
toCharArray()문자열을 문자배열(char[])로 변환해서 반환char
subString(int start)start 인덱스부터 문자열의 끝까지 추출String
subString(int start, int end)start 인덱스부터 end 직전까지 문자열 추출 String
toLowerCase()String 인스턴스에 저장되어있는 모든 문자열을 소문자로 변환String
toUpperCase()String 인스턴스에 저장되어있는 모든 문자열을 대문자로 변환String
startsWith(String str)str 문자열로 시작되면 true 반환boolean
endsWith(String str)str 문자열로  끝나면 true 반환boolean
trim()문자열 양 옆(왼쪽 끝, 오른쪽 끝)에 있는 공백을 없앤 후 반환 
String
valueOf(모든 자료형)어떠한 자료형이던 인자로 전달되면 그 값을 문자열로 변환하여 반환한다. 참조변수의 경우 toString()을 호출한 결과를 반환한다. 

 

String a = "코딩공부";
char result =  a.charAt(0); //result에 '코'가 저장됨
String b = "하는중";
String ab = a.concat(b);
String [] res = a.split("딩|코"); //res[0]=" ",res[1]=" ", res[2]="공부" 로 저장됨, 정규식의 모든 기준을 동시에 검사함
String str = "my puppy";
char arr[] = str.toCharArray();
arr[3] = 'm' 
System.out.println(arr); // my muppy 로 출력됨

 

toString 함수

  • Object 클래스 내부에 toString 함수가 존재
  • 객체를 문자열로 변환하기 위한 메소드
  • 오버라이딩을 통해 원하는 값을 리턴하도록 메소드를 작성한다 (오버라이딩 전에는 클래스 이름@객체주소가 출력된다)
  • 객체를 선언하고 그 객체 이름을 print 하였을 때 리턴값을 객체의 시스템 주소 값이 아닌 의미있는 값으로 재설정시키는 역할(현 객체에 대한 스트링 표현을 리턴)
  • valueOf 메소드와 함께 쓰지 않고 toString만 쓸 때는 System.out.println(참조변수.toString()); 으로 출력한다
class tos {
	int a = 1;
	int b = 2;
	
	public String toString() {
		return "a : " + this.a + ", " + "b : " + this.b ;
		
	}  //toString 함수는 객체의 참조타입이 되는 클래스에 만든다
}

public class Main {
	public static void main(String[] args) {
		

		tos obj = new tos(); 
        
	
		String res = String.valueOf(obj);
		
		
		System.out.println(res);
		}
	}