문자열 다루는 메서드 요약정리

배열을 문자열(String) 타입으로 변환하는 메서드

  • Arrays.toString() : 모든 타입을 문자열로 반환한 결과는 [요소,요소, …] 형태를 유지한 문자열이다
  • new String() : char 배열을 문자열로 변환한다
  • String.valueOf() : 넘어온 파라미터를 문자열(String)로 변환한다
    • 파라미터로 사용할 수 있는 타입
    • char 배열 : String str = String.valueOf(char_array)
    • char형 : String str = String.valueOf(‘c’)
    • int형 : String str = String.valueOf(124)

문자열을 다른 타입으로 변환하는 메서드

  • char 배열로 변환하기
    • toCharArray() : 문자열을 char 배열로 변환
    • 코드 예시
String str1;
char[] chr_arr = str1.toCharArray();
  • int 타입으로 변환하기
    • Integer.parseInt() : 문자열을 int형 값으로 변환
    • 코드 예시
String str2 = "2342525";
int a = Integer.parseInt(str2);
  • long 타입으로 변환하기
    • Long.parseLong(str);

배열 복사 메서드

  • void Arrays.copyOf(Object[] obj,int length)
  • void Arrays.copyOfRange(Object[] obj,int from, int to+1)

정렬 메서드

  • 오름차순 정렬 메서드
    • Arrays.sort(Object[] obj)
    • Arrays.sort(Object[] obj, int from, int to+1) : 인자의 배열을 인덱스 from부터 to까지 정렬
  • 내림차순 정렬 메서드
    • Arrays.sort(Integer[] arr, Collections.reverseOrder())
    • 넘겨주는 파라미터가 반드시 Integer 타입이어야 한다.

문자열 자르기 메서드

  • param.substring(int start) : 인덱스 start부터 끝까지 문자열을 잘라서 저장
  • param.substring(int start, int end+1) : 인덱스 start부터 end 까지 문자열을 잘라서 저장

문자열 합치기 메서드

  • param1.concat(param2) : 합친 문자열을 String으로 생성해줌
  • param1 + param2 : StringBuilder로 변환시킨 후 append()로 이어붙이고 toString()으로 문자열 반환

문자열 쪼개기 메서드

  • str.split(“a”): 문자열을 a라는 문자열을 기준으로 쪼갠 배열로 만들어 반환한다.
    • str.split(“”) 이렇게 사용하면 문자가 하나씩 쪼개진다. 문자열의 길이와 동일한 크기의 배열이 만들어 진다.

문자열 앞뒤 공백 제거

  • s1.trim(): 문자열의 앞, 뒤 공백을 제거하여 반환한다. 문자열 중간에 있는 공백은 제거하지 않는다.

영어 대소문자 변환 메서드

  • str.toLowerCase(): 문자열을 모두 소문자로 변환하여 반환한다.
  • str.toUpperCase(): 문자열을 모두 대문자로 변환하여 반환한다.

문자열에서 특정 문자열 포함여부 확인 메서드

  • str.contains(“abc”): 문자열에서 매개변수로 넘긴 문자열이 포함되어 있으면 true, 포함되지 않았으면 false를 반환한다.

문자가 숫자인지 확인하는 메서드

  • 문자를 확인하므로 문자열에서 문자를 추출해 매개변수로 넘겨주어야 한다.
  • Character.isDigit(char ch) : 매개변수 ch가 숫자면 true, 숫자가 아니면 false를 반환한다.

StringBuilder API 사용하기

  • StringBuilder sb = new StringBuilder() : StringBuilder 객체 선언
  • sb.toString() : 문자열 string으로 변환
  • sb.substring(int from,int to+1) : 인덱스 이용해 문자열 추출 (반환할뿐, 저장하지 않음)
  • sb.append(String param) : 문자열 마지막에 다른 문자열 연결하여 이어 붙이기
  • sb.length() : 문자열의 길이
  • sb.capacity() : 용량의 크기
  • sb.reverse() : 문자열 역순으로 변경
  • 참고로 StringBuilder는 단일 스레드용, StringBuffer는 멀티 스레드용으로 사용하는것을 권장한다.

String 사용자 입력 받을때

  • next() : 문자나 문자열을 공백 기준으로 입력받는다.
  • nextLine(): 문자 또는 문자열을 한 라인씩 입력받는다. 즉 enter 마다 입력는다.
  • Scanner로 int형 받은 다음 String형 받을때
    • Scanner로 int형 받은 다음 String형 받을때 주의해야 한다. nextInt는 개행을 포함하지 않지만 nextLine은 포함시키기 때문에 int입력시에 포함되었던 개행문자가 다음 nextLine에 포함된다. 그 결과 사용자 입력을 실제로 받지않고 지나친다. 그러니 이 부분을 유의해서 실수하지 않도록 하자.
  • 해결방법: nextInt와 nextLine 사이에 sc.nextLine 메서드를 한번 더 써준다.
    Scanner sc = new Scanner(System.in);
    String[] arr = new  String[3];
    int num = sc.nextInt(); //1
    sc.nextLine(); //2
    for(int i=0 ; i<3 ; i++){
      arr[i] = sc.nextLine();
    }