ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 자바 알고리즘 / 가운데 문자 추출하기.
    알고리즘 2019. 10. 5. 20:13
    반응형

    문제 설명

    단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

    제한사항

    s는 길이가 1 이상, 100이하인 스트링입니다.

    입출력      예

    [s]           [return]

    abcde       c

    qwer         we

     

    문제 풀이

    - 짝수와 홀수일 때를 구분할 것.

    - 매개변수로 들어온 문자열의 길이를 이용할 것. (문자열.length() 메서드 이용 )

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Test {
      public String test(String s) {
          String answer = "";
          if(s.length()%2==0){
              //짝수
              answer = s.charAt((s.length()/2)-1)+""+s.charAt(s.length()/2);
          }else{
              //홀수
              answer = s.charAt(s.length()/2)+"";
          }
          return answer;
      }
    }
     

    Dev. 흑구 Ver.

    -해설

    문자열의 길이를 이용해서 charAt() 메서드를 이용하여 가운데 문자 하나를 얻는다.  하지만 charAt 메서드는 char형을 반환하므로 String 변수에 대입할 수 없다. 따라서 빈문자열을 붙여줌으로써 String 변수에 대입할 수 있도록 한다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class StringExercise{
        String getMiddle(String word){
     
            return word.substring((word.length()-1/ 2, word.length()/2 + 1);    
        }
        // 아래는 테스트로 출력해 보기 위한 코드입니다.
        public static void  main(String[] args){
            StringExercise se = new StringExercise();
            System.out.println(se.getMiddle("power"));
        }
    }
     

    Others Ver.

    substring() 메서드는 -> substring(문자열, 시작 index, 종료index) 와 같이 시작인덱스와 종료인덱스를 지정해서 문자열을 자를 수 있다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class StringExercise{
        String getMiddle(String word){
            int length = word.length();
            int mid = length / 2;
            return length%2==0 ? word.substring(mid-1, mid+1) : word.substring(mid, mid+1) ;  
        }
        // 아래는 테스트로 출력해 보기 위한 코드입니다.
        public static void  main(String[] args){
            StringExercise se = new StringExercise();
            System.out.println(se.getMiddle("power"));
        }
    }

    Others Ver.

     

    출처-https://sas-study.tistory.com

    반응형

    댓글

Designed by Tistory.