알고리즘
[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.
반응형