JAVA/클래스&인터페이스

[Java] String 클래스

katia 2023. 4. 5. 14:16

String 클래스

  • String(java.lang.String)클래스는 문자열과 관련된 기능을 제공한다.
import java.lang.String;

1. 객체 메서드

  • charAt(int i) : (char) 문자열이 가지고 있는 문자들 중, i번째 문자를 반환한다.
String str1 = "hello";
System.our.println(str1.charAt(3)); 

// 출력 : l
  • concat(String s) : (String) 호출 대상인 문자열의 내용 끝에 s를 붙인 새로운 문자열을 반환한다.
String str1 = "hello";
String str2 = "java!";
String strCon = str1.concat(str2);
System.out.println(strCon);    

// 출력 : hello java!
  • contains(CharSequence s) : (boolean) 호출 대상인 문자열의 내용이 s를 포함하는가의 여부를 반환한다.
String str = "hello java!";
System.out.println(str.contains("java")); 

// 출력 : true;
  • endsWith(String s) : (boolean) 호출 대상인 문자열의 내용이 s로 끝나는가의 여부를 반환한다.
String str = "hello java!";
System.out.println(str.contains("java!")); 

// 출력 : true
  • equals(Object o) : (boolean) oStrirng이 될수 있다면 문자열의 내용을 비교하여 동일한가에 대한 여부를 반환한다.
String str1 = "java";
String str2 = "java";

System.out.println(str1 == str2);    
// 출력 : true -> 하지만 이거는 객체의 주소가 같다는 것을 의미. 
System.out.println(str1.equals(str2));    
// 출력 : true -> 이 메서드를 사용해야 실제 값이 같은지를 비교 할 수 있음.
  • equalsIgnoreCase(String s) : (boolean) equals와 동일하나 대소문자르 가리지 않는다.
String str1 = "Java";
String str2 = "java";

System.out.println(str1.equalsIgnoreCase(str2));    
// 출력 : true
  • indexOf(String s) : (int) 호출 대상이 되는 문자열의 내용 중 s와 일치하는 첫번째 순번을 반환한다. 일치하는 내용이 없다면 -1을 반환한다.
String str1 = "Java";
System.out.println(str1.indexOf("v"));    
// 출력 : 2
System.out.println(str1.indexOf("e"));    
// 출력 : -1
  • lastIndexOf(String s) : (int) 호출 대상이 되는 문자열의 내용 중 s와 일치하는 마지막 순번을 반환한다. 일치하는 내용이 없다면 -1을 반환한다.
String str1 = "Java";
System.out.println(str1.lastIndexOf("a"));    
// 출력 : 3
System.out.println(str1.lastIndexOf("e"));    
// 출력 : -1
  • length() : (int) 문자열의 길이를 반환한다.
String str1 = "Java";
System.out.println(str1.length());    
// 출력 : 4
  • matches(String r) : (boolean) 호출 대상이 되는 문자열의 내용이 정규식 r에 부합하는가의 여부를 반환한다.
String str1 = "Java";
System.out.println(str1.matches("[a-z]+"));    
// 출력 : false -> 소문자로만 이루어져 있지 않아서.
System.out.println(str1.matches("[A-Za-z]+"));    
// 출력 : true
  • repeat(int i) : (String) 문자열의 내용을 i번 반복한 새로운 문자열을 반환한다.
String str1 = "Java";
System.out.println(str1.repeat(2));    
// 출력 : JavaJava
  • replace(CharSequence f, CharSequence t) : (String) 문자열의 내용에서 f를 찾아 t로 치환한 문자열을 반환한다.
String str1 = "Java";
System.out.println(str1.replace("a", ""));    
// 출력 : Jv
  • replaceAll(String r , String t) : (String) 문자열의 내용에서 정규식 r을 만족하는 내용을 t로 치환한 문자열을 반환한다.
String str1 = "Java";
System.out.println(str1.replaceAll("[^a-z]", ""));    
// 출력 : ava
  • split(String r) : (String[]) 문자열에서 정규식 r을 만족하는 내용을 기준으로 문자열을 나누어 문자열 배열로 반환한다.
String str1 = "hello Java";
String[] strArr = str1.split(" "); 
// ["hello", "Java"]
  • startsWith(String s) : (boolean) 호출 대상인 문자열의 내용이 s로 시작하는가의 여부를 반환한다.
String str1 = "hello Java";
System.out.println(str1.startsWith("hello")); 
// 출력: true
  • strip() : (String) 문자열의 내용에서 선/후행하는 연속된 공백을 모두 제거한다.
String str1 = "   Java   ";
System.out.println(str1.strip()); 
// 출력: Java
  • stripLeading() : (String) 문자열의 내용에서 선행하는 연속된 공백을 모두 제거한다.
String str1 = "   Java   ";
System.out.println(str1.stripLeading()); 
// 출력: "Java   "   
  • stripTrailing() : (String) 문자열의 내용에서 후행하는 연속된 공백을 모두 제거한다.
String str1 = "   Java   ";
System.out.println(str1.stripLeading()); 
// 출력: "   Java"  
  • substring(int f, int t) : (String) 문자열의 내용에서 f번째 부터 t-1번째까지의 문자열을 반환한다.
String str1 = "Hello Java";
System.out.println(str1.substring(0,3)); 
// 출력: Hel  
  • toCharArray() : (char[]) 문자열의 내용을 문자 배열로 반환한다.
String str1 = "Java";
char[] arrChar = str1.toCharArry();    
// ['J','a','v','a']
  • toLowerCase() : (String) 문자열이 포함하는 모든 알파벳을 소문자로 치환하여 반환한다.
String str1 = "Java";
System.out.println(str1.toLowerCase()); 
// 출력: java 
  • toUpperCase() : (String) 문자열이 포함하는 모든 알파벳을 대문자로 치환하여 반환한다.
String str1 = "Java";
System.out.println(str1.toUpperCase()); 
// 출력: JAVA 

2. 정적 메서드

  • copyValueOf(char[] cs) : (String) 문자 배열을 문자열로 반환한다.
Char[] arrChar = new char[] {'j','a','v','a'};
String str = "";
str = String.copyValueOf(arrChar);
System.out.println(str);    
// 출력: java
  • format(String s, Object ... os): (String) 주어진 규격 s에 맞도록 하나이상의 값 os를 대입한 문자열을 반환한다.
    • %s : 문자열 대입
      • %xs : 자리수를 x자로 맞추어, 선행 공백을 추가하여 대입
      • %-xs : 자리수를 x자로 맞추어, 후행 공백을 추가하여 대입
      • %.ns : 최대로 출력될 수 있는 문자열의 길이를 n으로 제한하여 대입
      • 그 외 %x.ns-x.ns등의 형태로 조합하여 사용할 수 있다.
    • %d : 정수형(byte, short, int, long등) 대입
      • %,d : 천자리를 쉼표로 구분하여 대입한다.
      • %xd : 자리수를 x자로 맞추어, 선행 공백을 추가하여 대입
      • %-xd : 자리수를 x자로 맞추어, 후행 공백을 추가하여 대입
      • 그 외 %,xd, %,-xd 등의 형태로 조합하여 사용할 수 있다.
    • %f : 실수형(float, double 등) 대입
      • %,f : 천자리를 쉼표로 구분하여 대입한다.
      • %.nf : 소수점을 n자까지만 표시하고, 나머지에 대해 반올림하여 대입
      • %xf : 자리수를 x자로 맞추어, 선행 공백을 추가하여 대입(소수점을 위한 마침표(.)도 길이에 포함된다.)
      • %-xf : 자리수를 x자로 맞추어, 후행 공백을 추가하여 대입(소수점을 위한 마침표(.)도 길이에 포함된다.)
      • 그 외 %x.nf, %-x.nf, %,xf, ,-xf, %,x.nf 등의 형태로 조합하여 사용할 수 있다.
String str = "";
str = String.format("%d번은 %s입니다.", 5, "홍길동");    
// 출력: 5번은 홀길동입니다.
  • join(CharSequence d, CharSequence... cs) : (String) csd로 이어 붙힌 문자열을 반환한다.
String str1 = "Hello";
String str2 = "Java";
System.out.println(String.join(str1,str2));    
// 출력: HelloJava
  • valueOf(double d) : (String) d를 문자열로 반환한다.
String str = "";
str = String.valueOf(0.3d);
System.out.println(str);    
// 출력: 0.3
  • valueOf(float f) : (String) f를 문자열로 반환한다.
String str = "";
str = String.valueOf(5.6f);
System.out.println(str);    
// 출력: 5.6
  • valueOf(int i) : (String) i를 문자열로 반환한다.
String str = "";
str = String.valueOf(500);
System.out.println(str);    
// 출력: 500
  • valueOf(long l) : (String) l를 문자열로 반환한다.
String str = "";
str = String.valueOf(392L);
System.out.println(str);    
// 출력: 392

'JAVA > 클래스&인터페이스' 카테고리의 다른 글

[Java] Double 클래스  (0) 2023.04.10
[Java] Long 클래스  (0) 2023.04.10
[Java] Integer 클래스  (0) 2023.04.10
[Java] Math 클래스  (0) 2023.04.10
[Java] Collection  (0) 2023.04.06