CS/Algorithm

[Java] 문자열 관련 함수

칸타탓 2019. 4. 16. 09:22

문자열 함수 정리하기

 

 

- valueOf(number)

해당 number를 String으로 변환하여 반환

String.valueOf(number);

 

- length()

문자열의 길이를 반환

 

- charAt(index)

해당 문자열의 index에 위치한 문자를 char형으로 반환

 

startWith()

문자열이 지정한 문자로 시작하는지 판단 (대소문자 구분)

같으면 true 다르면 false

String str = "apple";
boolean startsWith = str.startsWith("a"); //true

 

- equals()

String값을 비교해서 같으면 true, 다르면 false 반환

 

- indexOf()

문자가 문자열 어디에 위치하는지 index 값 반환 (0부터 시작)

String str = "abcdef";
int indexOf = str.indexOf("d"); //3

 

- lastindexOf()

지정 문자 중 문자열에서 마지막 문자가 위치하는 index 반환 (0부터 시작)

 

- replace()

문자열 바꾸기 (치환)

String str = "A*B*C*D";
String replace = str.replace("*", "-");

 

- replaceAll()

첫번째 인자에 정규식이 들어가는 것이 replace와의 차이

따라서 replace를 통하여 처리하지 못하는 문자열 처리 가능

String str = "aaabbbccccabcddddabcdeeee";
  
String result1 = str.replace("abc", "*"); // aaabbbcccc*dddd*deeee
String result2 = str.replaceAll("[abc]", "*");
// *************dddd***deeee
// a or b or c 3가지의 문자를 만나면 전부 치환대상이 된다.

 

- 문자열.split()

문자열 자르기. 자른 문자열을 배열에 넣어준다 (반환값 : 문자 배열)

 

- substring(시작 index, 종료 index)

문자열 자르기

ex) 마지막 세 글자 자르기, 특정 문자 이후 자르기, 특정 단어만 자르기...

String str = "ABCDEFG"; 
String result = str.substring(str.length()-3, str.length()); //EFG

 

- 문자열.toLowerCase()

대문자 -> 소문자

 

- 문자열.toUpperCase()

소문자 -> 대문자

 

- trim()

문자열 앞, 뒤 공백 없애기

str.trim();

 

- compareTo() : 기준값.compareTo(비교값)

두 개의 String를 앞에서부터 순사적으로 비교하다가 틀린부분이 있으면 비교하는 String에 캐릭터 값을 반환한다.

* 문자 비교: 다른 문자 갯수만큼 리턴(대소문자 구별)

 

- compare(기준값, 비교값)

* 숫자 비교: 같으면 0, 기준값이 더 크다면 1, 비교값이 더 크다면 -1

public class CompareExample {
  public static void main(String... args) {
    //결과는 -1
    System.out.println(Integer.compare(1, 2));
    //결과는 0
    System.out.println(Integer.compare(2, 2));
    //결과는 1
    System.out.println(Integer.compare(3, 2));
  }
}

 

- 문자열.contains()

포함하고 있는지 비교

포함하면 true, 포함하지 않으면 false 반환

String str1 = "abcd";
String str2 = "c";
boolean contains = str1.contains(str2); //true

 

- concat(결합할 문자열, ...)

문자 문자 결합

String string_res = string1.concat(string2, string3[,..., stringN])

 

- format()

서식화된 문자열 반환

int i = 123456789;
String str = String.format("%,d", i); // , 천 단위
System.out.println("format: " + str); //123,456,789

- 기타 다른 방법

// 문자열 형식
DecimalFormat decFormat = new DecimalFormat("###,###"); 

String str = decFormat.format(12300000);
System.out.println(str); // 12,300,000

str = decFormat.format(505000);
System.out.println(str); // 505,000

// 숫자 형식
NumberFormat numberFormat = NumberFormat.getInstance();

String str = numberFormat.format(123000);
System.out.println(str); // 123,000

str = numberFormat.format(123000.7891);
System.out.println(str); // 123,000.79

 


 

[참고] https://sks3297.tistory.com/entry/%EC%9E%90%EB%B0%94-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%95%A8%EC%88%98