본문 바로가기
Java

Java_String 클래스

by 유서담 2023. 11. 14.

String

 

  • 문자열을 표현하는 객체다.
  • 문자열(String)은 불변객체다.
    • 한번 생성된 문자열은 절대로 변하지 않는다.
  • String객체는 문자열과 관련된 다양한 기능들을 제공한다.

 

String객체를 생성하는 방법

 String str = "abc";  // 문자열 리터럴로 생성
 
String str2 = new String("abc"); // new 연산자로 생성

// String 클래스의 클래스 메소드로 생성
String str3 = String.valueOf(true);	// "true"
String str3 = String.valueOf(10000);	// "10000"
String str3 = String.valueOf(3.14);	// "3.14"

 

 

 

String의 주요 메소드

 

 

int length()

  • 문자열의 길이를 반환한다.
String s1 = "Hi";
String str2 = "abc abc abc";
		
System.out.println("길이 : " + s1.length());	// 길이 : 7
System.out.println("길이 : " + str2.length());	// 길이 : 11 공백도 카운트

 

 

boolean isEmpty()

  • 문자열의 길이가 0인 경우 true를 반환한다
String str3 = "";
String str4 = "   ";
String str5 = "안녕하세요";
System.out.println("빈 문자열인가 " + str3.isEmpty());	// true
System.out.println("빈 문자열인가 " + str4.isEmpty());	// false
System.out.println("빈 문자열인가 " + str5.isEmpty());	// false

 

 

boolean isBalnk()

  • 빈 문자열이거나 공백으로만 구성된 문자열인 경우 true를 반환
System.out.println("빈 문자열인가 " + str3.isBlank());	// true
System.out.println("빈 문자열인가 " + str4.isBlank());	// true
System.out.println("빈 문자열인가 " + str5.isBlank()); // false

 

 

boolean contains(CharSequence s)

  • 지정된 문자열이 포함되어 있으면 true를 반환한다.
String str6 = "HTA";
System.out.println("H 문자열을 포함하는가 " + str6.contains("H")); // true

 

 

boolean startsWith(String prefix)

  • 문자열이 지정된 문자열로 시작하면 true를 반환한다.
String str7 = "http://naver.com";
String str8 = "google.com";
String str9 = "http://index.com";
		
System.out.println("문자열이 http로 시작하는가 "+ str7.startsWith("http"));	// true
System.out.println("문자열이 http로 시작하는가 "+ str8.startsWith("http"));	// false
System.out.println("문자열이 http로 시작하는가 "+ str9.startsWith("http"));	// true

 

 

boolean endsWith(String suffix)

  • 문자열이 지정된 문자열로 끝나면 true를 반환한다.
String str10 = "sample.hwp";
String str11 = "sample.xlsx";
String str12 = "sample.xlsx";
		
System.out.println("엑셀파일인가 " + str10.endsWith("xlsx"));	// false
System.out.println("엑셀파일인가 " + str11.endsWith("xlsx"));	// true
System.out.println("엑셀파일인가 " + str12.endsWith("xlsx"));	// true

 

 

boolean equals(Object str)

  • 지정된 문자열과 문자열의 내용을 비교해서 일치하면 true를 반환한다
  • 대소문자를 구분한다
  • Object의 equals(Object obj)를 재정의한 메소드다. 단, 문자열의 내용을 비교하도록 정의한 메소드다.
String str1 = "홍길동";
String str2 = "홍길동";
		
String str3 = new String("홍길동");
String str4 = new String("홍길동");

System.out.println("문자열 내용 비교 :" + str1.equals(str2));	// true
System.out.println("문자열 내용 비교 :" + str3.equals(str4));	// true
System.out.println("문자열 내용 비교 :" + str1.equals(str3));	// true

String str5 = "Hello";
String str6 = "hello";
		
System.out.println("대소문자 구분 :" + str5.equals(str6));	// false

 

 

boolean equalsIgnoreCase(String str)

  • 지정된 문자열과 문자열의 내용을 비교해서 일치하면 true를 반환한다
  • 단, 문자가 대소문자를 제공하는 경우 대소문자 상관없이 비교한다
String str5 = "Hello";
String str6 = "hello";
		
System.out.println("대소문자 구분 :" + str5.equals(str6));		// false
System.out.println("대소문자 무시 :" + str5.equalsIgnoreCase(str6));	// true

 

 

String substring(int beginIndex)

  • 지정된 시작위치 ~ 문자열 끝 범위에 해당하는 문자열로 구성된 새 문자열을 반환한다
  • 문자열의 인덱스는 0부터 시작한다. 
String str1 = "유서담";

String str2 = str1.substring(1);	// 서담

 

 

String substring(int beginIndex, int lastIndex)

  • 지정된 시작위치 ~ 끝위치 범위에 해당하는 문자열로 구성된 새 문자열을 반환한다
  • beginIndex는 포함, endIndex는 포함되지 않는다
String str1 = "970212-1234567";
		
String str2 = str1.substring(0,2);	
System.out.println("태어난 해 : " + str2); // 태어난 해 : 97
String str3 = str1.substring(2, 6);
System.out.println("생일 : " + str3);	// 생일 : 0212

 

 

String toUpperCase()

  • 문자열의 내용을 참조해서 대문자로만 구성된 새 문자열 객체를 반환한다
String str1 = "Hello, Java World!";
String str2 = str1.toUpperCase();
System.out.println("새 문자열 :" + str2); // 새 문자열 :HELLO, JAVA WORLD!

 

 

String toLowerCase()

  • 문자열의 내용을 참조해서 소문자로만 구성된 새 문자열 객체를 반환한다
String str1 = "Hello, Java World!";
String str3 = str1.toLowerCase();
System.out.println("새 문자열 :" + str3); // 새 문자열 :hello, java world!

 

 

String replace(String searchStr, String replaceStr)

  • searchStr에 해당하는 문자열이 replaceStr로 대체된 새문자열을 반환한다
String str4 = "The red house's color is red";
String str5 = str4.replace("red", "green");

System.out.println("새 문자열 : " + str5);	// The green house's color is green

 

 

 

trim과 strip 시리즈

 

 

String trim()

  • 문자열에서 불필요한 좌우 공백이 제거된 새 문자열을 반환한다

String strip()

  • 문자열에서 불필요한 좌우 공백이 제거된 새 문자열을 반환한다

String stripLeading()

  • 문자열의 왼쪽 공백이 제거된 새 문자열을 반환한다

String stripTrailing()

  • 문자열의 오른쪽 공백이 제거된 새 문자열을 반환한다
String str6 = "		안녕하세요.			반갑습니다.			";
String str7 = str6.trim();
String str8 = str6.strip();
String str9 = str6.stripLeading();
String str10 = str6.stripTrailing();
System.out.println("원본 문자열 : ["+str6+"]");
System.out.println("trim 적용 문자열 : ["+str7+"]");
System.out.println("strip 적용 문자열 : ["+str8+"]");
System.out.println("stripLeading 적용 문자열 : ["+str9+"]");
System.out.println("stripTrailing 적용 문자열 : ["+str10+"]");

원본 문자열 : [		안녕하세요.			반갑습니다.			]
trim 적용 문자열 : [안녕하세요.			반갑습니다.]
strip 적용 문자열 : [안녕하세요.			반갑습니다.]
stripLeading 적용 문자열 : [안녕하세요.			반갑습니다.			]
stripTrailing 적용 문자열 : [		안녕하세요.			반갑습니다.]

 

 

indexOf 시리즈

 

 

char indexOf(String str)

  • 문자열에서 지정된 문자열이 처음으로 등장하는 위치를 반환한다
  • 지정된 문자열을 찾을 수 없으면 -1을 반환한다

int indexOf(String str, int fromIndex)

  • fromIndex에 지정된 위치부터 문자열을 검색해서 등장위치를 반환한다

int lastIndexOf(String str)

  • 문자열에서 지정된 문자열이 마지막으로 등장하는 위치를 반환한다
  • 지정된 문자열을 찾을 수 없으면 -1을 반환한다

char charAt(int index)

  • 문자열에서 지정된 위치의 문자하나를 반환한다
String str1 = "02)7894-1234";
String str2 = "041)1111-9999";
		
// indexOf(")")는 문자열에서 ")"가 등장하는 위치값(인덱스)를 반환한다.
String str3 = str1.substring(0, str1.indexOf(")"));
String str4 = str2.substring(0, str2.indexOf(")"));
		
System.out.println("국번 : " + str3);	// 국번 : 02
System.out.println("국번 : " + str4);	// 국번 : 041

 

String str5 = "abcdefg";
char ch1 = str5.charAt(0);
char ch2 = str5.charAt(1);

System.out.println("문자 : "+ ch1);	// 문자 : a
System.out.println("문자 : "+ ch2);	// 문자 : b

 

 

String[ ] split(String delim)

  • 문자열을 지정된 구분문자로 잘라서 잘려진 각 문자열을 배열에 담아 반환한다
String str = "홍길동,김유신,고길동";
String[] items = str.split(",");
		
System.out.println(items[0]);	// 홍길동
System.out.println(items[1]);	// 김유신
System.out.println(items[2]);	// 고길동

 

 

int compareTo(String other)

  • 지정된 다른 문자와 사전 순서대로 비교한다
  • 배열이나 콜렉션에 저장된 문자열을 정렬할 때 사용된다

'Java' 카테고리의 다른 글

Java_StringBuilder/Buffer, Date 클래스, Math 클래스  (0) 2023.11.16
Java_Wrapper 클래스  (0) 2023.11.16
Java_Object 클래스, Java API  (0) 2023.11.14
Java_접근제어자, 내부클래스(oop)  (0) 2023.11.13
Java_인터페이스(oop)  (1) 2023.11.10