Home Java. [String] 문자 추출, 문자열 자르기 (indexOf(), substring()) 등
Post
Cancel

Java. [String] 문자 추출, 문자열 자르기 (indexOf(), substring()) 등

[문자 추출]
.charAt(int index)

[문자의 위치 추출]
.indexOf(String str)

[문자열 자르기]
.substring(int index1, int index2)

[문자열 → 문자 배열]
.toCharArray()

[문자열로 변환]
String.valueOf(값)

[문자열 → 문자열 배열]
split()


1. charAt(int index)


string.charAt(int index)

  • String 값에서 인덱스 위치에 자리한 문자 반환
  • (인덱스는 0부터 시작)
1
2
  String str = "HelloWorld";
  str = str.charAt(0)  // 인덱스 0번째 문자를 반환 → H

(+)
Scanner를 이용해 char 자료형 입력을 받을 때,
Scanner.sc = new Scanner(System.in);
char input = sc.next().charAt(0); 이렇게 표현
→ 문자열.charAt(0) : 문자열 중 0번째 인덱스 문자 하나를 얻어옴.


2. indexOf(String str)


string.indexOf(String str)

  • String 값에서 주어진 문자열(str)의 인덱스 위치 반환
  • 주어진 문자열(str)의 첫 번째 문자가 기준.
  • 없으면 -1을 반환
  • (인덱스는 0부터 시작)
strHello World
index012345678910
1
2
3
  String str = "Hello World";
  System.out.println(str.indexOf("World")); // 6 반환
  System.out.println(str.indexOf("a")); // -1 반환 (없는 문자)


3. substring(int index1, int index2)


string.substring(int index1, int index2)

  • String 값에서 인덱스 값으로 문자 자르기
  • 위치가 index1 부터 index2 전까지의 문자열을 잘라낸다.
strHello World
index012345678910
1
2
3
  String str = "Hello World";
  System.out.println(str.substring(2, 7)); // llo W 반환
  // 인덱스 7인 o의 "전까지" 잘라낸다.
  • index를 하나만 쓴다면, index 자릿수부터 문자열의 끝까지 잘라냄.
1
2
  String str = "Hello World";
  System.out.println(str.substring(6)); // World


4. toCharArray()


string.toCharArray()

  • 문자열(String)을 분리하여 문자(char) 배열 생성
    1
    2
    3
    4
    
    String str = "Hello World";
    char[] c = str.toCharArray();  
    System.out.println(Arrays.toString(c));
    // [H, e, l, l, o,  , W, o, r, l, d]
    


5. String.valueOf()


String.valueOf()

  • 기본 타입값을 문자열로 반환
    • String.valueOf(int i) : int형의 값을 문자열로 반환
    • String.valueOf(double d) : double형의 값을 문자열로 반환
    • String.valueOf(char[] c) : toCharArray()로 분리한 문자 배열을 다시 String으로.
1
2
3
  String str = "Hello World";
  char[] c = str.toCharArray();  // [H, e, l, l, o,  , W, o, r, l, d]
  System.out.println(String.valueOf(c)); // Hello World


[+]

spilt()


string.split(String regex)

  • 구분자를 기준으로, 문자열을 배열 형식으로 자르는 함수
1
2
3
  String str = "Hello World";
  String[] arr = str.split(" ");  // 공백을 기준으로 자르기
  System.out.println(Arrays.toString(arr)); // [Hello, World]

““을 이용하면 문자열 하나를 문자 단위의 String[]을 만들 수 있다.

1
2
3
  String str = "Hello";
  String[] arr = str.split(""); 
  System.out.println(Arrays.toString(arr)); // [H, e, l, l, o]


  • 배열로 저장되었기 때문에 배열 인덱스를 이용하여 각각의 값을 가져올 수 있다.
1
2
3
  String str = "Hello-World";
  String arr1 = str.split("-")[1];  // '-'를 기준으로 자른 배열의 인덱스 1의 값
  System.out.println(arr1); // World

string.split(String regex, int limit)

  • 구분자를 기준으로, limit만큼의 배열을 반환
1
2
3
4
5
6
7
  String str = "Hello World Bye"; // Hello 앞에 공백 추가

  String[] arr2 = str.split(" ", 2);  // 공백을 기준으로 2개의 배열을 반환
  System.out.println(Arrays.toString(arr2)); // [Hello, World Bye]

  String[] arr3 = str.split(" ", 3);  // 공백을 기준으로 3개의 배열을 반환
  System.out.println(Arrays.toString(arr3)); // [Hello, World, Bye]
This post is licensed under CC BY 4.0 by the author.