본문 바로가기

IT/Java

String 문자열 연산

1.  문자열 연산

String operation 즉, 문자열 연산에 대해서 알아보자.

문자열을 저장하기 위한 변수는 String이라는 참조형(클래스) 데이터형을 사용해서 선언한다.

이렇게 저장된 문자열을 자르거나, 붙이거나, 비교하거나 혹은 필요한 문자의 위치를 알아내는 작업들을 문자열 연산이라 한다. 문자열 연산은 연산자를 사용해서 처리해도 되지만 그보다는 대부분 String 클래스에서 제공하는 메소드들을 이용해서 처리할 수 있다.

 

* String rt = "TEST".concat(" is very important");

  => 여기서 TEST는 객체데이터, is very important는 매개변수 이다.

 

■ concat(String str)

 - 대상 문자열 뒤에 매개변수 str 문자열을 덧붙인 새로운 문자열 반환

 ex) "ABC".concat("DEF");    =>    "ABCDEF"

 

■ substring(int begindindex)

 - 대상 문자열에서 매개변서 beginindex 위치에 있는 문자열을 새롭게 반환한다.(문자열을 자르는 기능을 함)

 ex) "ABCD".substring(0);    =>    "ABCD"

      "ABCD".substirng(3);    =>    "D"

 

■ substring(int beginindex, int endindex)

 - 문자열에서 beginindex와 endindex 위치 사이에 있는 문자열을 새롭게 반환

 ex) "ABCDE".substring(3,5);    =>    "DE"

 

■ replace(char oldchar, char newchar)

 - 대상 문자열에서 oldchar 문자를 newchar 문자로 바꾼 새로운 문자열을 반환

 ex) "ABCDE".replace("ABC", "abc")    => "abcDE"

 

■ toLowerCase(), toUpperCase()

 - 소문자, 대문자로 문자열 반환

 

2. 문자열 비교

비교 연산자(==)는 변수의 데이터가 저장된 메모리의 위치를 서로 비교함

다시말하면.. '=='연산자는 JVM 메모리에 저장된 데이터(객체)를 직접 비교하는 것

이와 같은 상황을 방지하기 위해서 문자열 철자를 비교할 때는 equals()라는 메소드를 사용함

 

■ equals(Object anObject), equalsIgnoreCase(String anotherString)

 - 대상 문자열이 데이터(객체)와 같은지 비교해서 boolean 값 반환

 ex) "ABC".equals("DEF")    =>    false

 

■ startWith(String prefix), endWith(String suffix)

 - 대상 문자열이 매개변수로 받은 접두사, 접미사 문자열로 시작하는지 확인 후 boolean 값 반환

ex) "ABCDE".endWith("DE")    =>    true

 

3. 특정 문자열 위치 파악

대상 문자열에서 특정 문자의 위치값을 나타냄

■ indexOf(String str), lastIndexOf(String str)

 - 대상 문자열에서 str 문자가 앞에서부터, 뒤에서부터 맨 처음 시작하는 위치(index) 반환

 

4. 특정 형식으로 문자열 포매팅하는 법

특정 형식으로 문자열을 출력하고 싶을 때

■ format(String format, Object... args)

 - 매개변수 format의 형태로 뒤따라 입력된 매개변수 변경. 사용방법은 String.format();과 같이 문자열 뒤에 사용

ex) (1) String workYyyyMm = sDate.format(date);

     (2) int i =3;    String.format("%04d", i);    => 0003