알고리즘

[Java] 자바 알고리즘 / 가운데 문자 추출하기.

dev.mk 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

반응형