프로그래밍/java

[자바/Java] String 클래스 : 자주 사용되는 메소드

pupu91 2022. 8. 29. 20:56
반응형

 

String 클래스

:  Java.lang 패키지에 존재하는 클래스로 문자열을 처리하는 여러가지 메소드를 제공

 

 

 

 

제공하는 메소드

 

 


charAt()

: 해당 문자열의 특정 인덱스에 해당하는 문자를 반환

  인덱스를 벗어난 정수를 인자로 전달하면 IndexOutOfBoundsException 발생

String str1 = "apple";
		
for(int i = 0; i < str1.length(); i++) {
	System.out.println("charAt(" + i + ") : " + str1.charAt(i));
}

출력 결과
charAt(0) : a
charAt(1) : p
charAt(2) : p
charAt(3) : l
charAt(4) : e

 

 

 

compareTo()

: 인자로 전달된 문자열과 사전 순으로 비교

  두 문자열이 같으면 0

  인자로 전달된 문자열보다 작으면 음수 , 크면 양수 반환

   대소문자를 구분하여 비교함

 

String str2 = "java";
String str3 = "java";
String str4 = "JAVA";
String str5 = "oracle";

1) "java" 와 "java" 비교
System.out.println("compareTo() : " + (str2.compareTo(str3)));
=> compareTo() : 0

2) "java" 와 "JAVA" 비교
System.out.println("compareTo() : " + (str2.compareTo(str4)));
System.out.println("compareTo() : " + (str4.compareTo(str2)));
=> compareTo() : 32
   compareTo() : -32
   소문자가 대문자보다 크다

 
3) "java" 와 "oracle" 비교
System.out.println("compareTo() : " + (str2.compareTo(str5)));
System.out.println("compareTo() : " + (str5.compareTo(str2)));
=> compareTo() : -5
   compareTo() : 5
   jklmno j부터 o까지 5만큼 차이가 난다
   
숫자 의미는 중요하지 않고 양수인지 음수인지를 판단할 목적으로 주로 사용

   

 

 

 

 

concat()

: 문자열에 인자로 전달 된 문자열을 합치기

  원본 문자열에는 영향을 주지 않음

String str2 = "java";
String str5 = "oracle";

System.out.println("concat() : " + (str2.concat(str5)));
=> concat() : javaoracle

System.out.println("str2 : " + str2);
=> str2 : java 원본영향x

 

 

 

 

 

indexOf()

: 문자열에서 특정 문자를 탐색하여 처음 일치하는 인데스 위치를 정수형으로 반환

  일치하는 문자가 없는 경우 -1 반환

String indexOf = "java oracle";

System.out.println("indexOf('a') : " + indexOf.indexOf('a'));
=> indexOf('a') : 1
System.out.println("indexOf('z') : " + indexOf.indexOf('z'));
=> indexOf('z') : -1

 

 

 

 

 

lastIndexOf()

: 문자열 탐색을 뒤에서부터 하고 처음 일치하는 위치의 인덱스를 반환

  일치하는 문자가 없는 경우 -1 반환

String indexOf = "java oracle";

System.out.println("lastIndexOf('a') : " + indexOf.lastIndexOf('a'));
=>lastIndexOf('a') : 7

System.out.println("lastIndexOf('z') : " + indexOf.lastIndexOf('z'));
=>lastIndexOf('z') : -1

 

 

 

 

 

trim()

: 문자열 앞 뒤에 공백을 제거한 문자열을 반환

  원본 영향x

String trimStr = "   java   ";
		
System.out.println("trimStr : #" + trimStr + "#");
=> trimStr : #   java   #
System.out.println("trim() : #" + trimStr.trim() + "#");
=> trim() : #java#

 

 

 

 

 

toLowerCase()

: 모든 문자를 소문자로 변환

원본 영향x

String caseStr = "JavaOracle";

System.out.println("toLowerCase() : " + caseStr.toLowerCase());
=>toLowerCase() : javaoracle

 

 

 

 

toUpperCase()

: 모든 문자를 대문자로 변환

원본 영향x

String caseStr = "JavaOracle";

System.out.println("toUpperCase() : " + caseStr.toUpperCase());
=> toUpperCase() : JAVAORACLE

 

 

 

 

 

 

substring(start index, end index)

: 문자열의 일부를 잘라내어 새로운 문자열 반환

  end index 는 입력한 정수 -1 값까지 반환 

  start index만 있으면 마지막 index까지 반환

  원본 영향x

String javaoracle = "javaoracle";
		
System.out.println("substring(3, 6) : " + javaoracle.substring(3, 6)); 
=> substring(3, 6) : aor
System.out.println("substring(3) : " + javaoracle.substring(3));
=> substring(3) : aoracle

 

 

 

 

 

 

repalce() 

: 문자열에서 대체할 문자열로 기존 문자열을 변경해서 반환

  원본 영향x

String javaoracle = "javaoracle";

System.out.println("replace() : " + javaoracle.replace("java", "python"));
=> replace() : pythonoracle

 

 

 

 

 

length()

: 문자열의 길이를 정수형으로 반환

  배열에서의 length와 다름 

  length()는 메소드!

 

String javaoracle = "javaoracle";

System.out.println("length() : " + javaoracle.length());
=> length() : 10
System.out.println("빈 문자열 길이 : " + ("".length()));
=> 빈 문자열 길이 : 0

 

 

 

 

 

 

isEmpty()

: 문자열의 길이가 0이면 true, 아니면 false

  길이가 0인 문자열은 null값과는 다름

System.out.println("isEmpty() : " + "".isEmpty());
=>isEmpty() : true
System.out.println("isEmpty() : " + "abc".isEmpty());
=>isEmpty() : false
반응형