ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [코테] java 문자열(String / StringBuilder) 다루는 메서드 정리
    알고리즘/코테 2024. 9. 18. 00:02

     

     

     

     

    //String 타입
    
    String str = "abcde";
    
    
    str.length() // 5 문자열 길이
    
    str.CharAt(0)  // 'a' 0번째 글자 가져오기
    
    str.subString(a,b) // a부터 b 까지 문자열 일부 가져오기
    
    str.equals(a) // 문자열 비교, a와 같은지 비교하기
    
    str.equalsIgnoreCase(a) // 문자열 비교, 대소문자 상관x, a와 같은지 비교하기 
    
    str.toUpperCase(a)  // 문자열 대문자로 변환
    
    str.toLowerCase(a)  //  문자열 소문자로 변환
    
    str.contains(a)  // 문자열이 특정 문자열 포함하는지 확인
    
    str.replace(a,b)  // 문자열 a를 b로 교체하기
    
    str.split(a)  // 문자열 a를 기준으로 나눠서 배열로 반환하기
    
    str.trim() // 문자열 좌우 공백 제거하기
    
    str.indexOf(a) // 문자열에서 처음 나타나는 a의 인덱스를 찾아 반환, 없으면 -1반환
    
    str.lastIndexOf(a) // 문자열에서 마지막에 나타나는 a의 인덱스를 찾아 반환, 없으면 -1반환
    
    str.startWith(a) // 문자열이 a로 시작하는지 여부 반환
    
    str.endWith(a) // 문자열이 a로 끝나는지 여부 반환

     

     

    String의 스태틱 메서드

    String클래스의 인스턴스를 생성하지 않고도 사용할 수 있는 메서드이다.

    그렇기 때문에 < 객체. 메서드() >의 형태가 아닌 < 클래스.메서드() >의 형태로도 사용할 수 있다.

     

    String.valueOf() // 문자로된 배열이나 다른 타입들을 문자열 타입으로 변환

     

     

     

     

     

     

     

    StringBuilder

    StringBuilder는 기존의 만들어진 객체를 활용하여 작업이 이루어지기때문에 String보다 연산이 빠르다.

    String은 계속 새로운 객체를 생성해가며 작업하기때문에 공간낭비크고 연산이 느리다.

     

     

    StringBuilder sb = new StringBuilder(); //
    
    sb.append(str)  //  문자열 str을 StringBuilder의 끝에 추가.
    
    sb.insert(index, str) // 지정한 위치에 문자열을 삽입.
    
    sb.delete(start, end)  // 주어진 인덱스 범위의 문자열을 삭제.
    
    sb.deleteCharAt(index)  // 지정한 인덱스의 문자 하나를 삭제.
    
    sb.reverse()  // StringBuilder의 문자열을 뒤집기.
    
    sb.toString() // StringBuilder의 내용을 String으로 변환.
    
    sb.charAt(index)  // 지정한 인덱스의 문자char를 반환.
    예: char ch = sb.charAt(0);
    
    sb.length()  // StringBuilder의 길이를 반환.
    예: int len = sb.length();
    
    sb.setCharAt(index, ch)  //  지정한 인덱스의 문자를 새 문자로 설정합니다.
    예: sb.setCharAt(0, 'H');
    
    sb.indexOf(String str)  // 주어진 문자열이 처음으로 나타나는 인덱스를 반환. 없으면 -1 반환.
    예: int index = sb.indexOf("World");

     

     

     

     

    StringBuilder 예시

    문제) 여러개의 문자들을 뒤집어서 출력하기

    Scanner sc = new Scanner(System.in);
    
    int num = sc.nextInt();
    sc.nextLine();
    String[] strArray = new String[num];
          
    for(int i=0; i<num; i++){
        strArray[i] = sc.next();
     }
    
     for(String x: strArray){
       //StringBuilder의 생성자 매개변수로 StringBuilder바로생성, 처리 후 String형태로 바로 저장
         String str = new StringBuilder(x).reverse().toString(); 
              
         System.out.println(str);
     }

     

     

     

     

     

     

    문제) 주어진 문자열들을 뒤집어서 출력하기 (StringBuilder의 reverse()를 사용하지 않고)

     Scanner sc = new Scanner(System.in);
    
    int num = sc.nextInt();  // nextInt()는 줄바꿈이 적용안되기때문에 줄바꿈 소비 해줘야함.
    sc.nextLine();
    String[] strArray = new String[num];
    for(int i=0; i<num; i++){
        strArray[i] = sc.next();  // next()는 상황에따라 자동으로 공백, 줄바꿈 소비 알아서 해줌.
    }
    
    
    for(String x: strArray){
    
    // 문자를 양쪽 맨끝부터 하나씩 교환
      char[] chArr = x.toCharArray();
      int lt = 0, rt = x.length()-1;
      while(lt<=rt){
          char tmp = chArr[lt];
          chArr[lt] = chArr[rt];
          chArr[rt] = tmp;
          lt++;
          rt--;
      }
      
    // String의 스태틱 메서드 valueOf사용해서 문자열 배열을 문자로 변환
      String str = String.valueOf(chArr);  
      System.out.println(str);
    }

     

Designed by Tistory.