문제
https://programmers.co.kr/learn/courses/30/lessons/12903
풀이
문자열의 개수 파악
1) 짝수 → 가운데 두 글자
2) 홀수 → 가운데 한 글자
참고
1. java.lang.String.charAt() vs. subString() length
- public char charAt(int index)
- 입력받은 인자값(index)의 위치에 있는 문자를 뽑아 char형으로 return
String str = "ABCDE";
System.out.println(str.charAt(3)); //D
2. java.lang.String.length() vs. length, size()
- public int length()
- String_related_Object (String, StringBuilder)
- 문자열의 길이를 return
String str="Hello World!";
Sytem.out.println(str.length()); //12
2-2. length
- int length
- arrays (int[], double[], String[], ...)
- 배열의 길이를 return
2-3. java.util.*.size()
- int size()
- Collection_Object(ArrayList, Set, Map, ...)
- 컬렉션 프레임워크 타입의 길이를 return
3. toString() vs. new String()
- Object 클래스의 메소드 == 자바의 라이브러리나 유저가 만든 모든 클래스에 적용 가능
- 객체가 가지고 있는 정보나 값들을 문자열로 만들어 return
- String 클래스나 File 클래스에서는 toString()에 메소드를 재정의(Override)하여 의미있는 값을 return
- String클래스객체.toString() : 객체가 가진 값을 String으로 return
- File클래스객체.toString() : 객체가 가진 해당 경로값을 String으로 return
- toString() 메소드는 자동으로 호출된다
- null 값이 들어오면 Null Pointer Exception
3-2. Char형의 변수를 String형으로 변환 (한글자)
Character.toString(char형);
3-3. Char[] 캐릭터형 배열을 바로 String형으로 변환 (여러 글자)
String str = String.valueOf(char[]배열);
+ 또는 toString으로 한 글자씩 더해주는 방법이 있다
- null 값이 들어오면 null 문자열을 return
3-4. new String()
- new String(char[] value, int offset, int count)
- int offset : 처음 인덱스
- int count : 개수
char[] value = {'a','b','c','d'};
String str1 = new String(value, 2,1); //index 2부터 1개
System.out.println(str1); //c
String str2 = new String(value, 2,2); //index 2부터 2개
System.out.println(str2); //cd
String str3 = new String(value, 2,3);
System.out.println(str3); //java.lang.StringIndexOutOfBoundsException: offset 2, count 3, length 4
String str4 = new String(value);
System.out.println(str4); //abcd
코드
class Solution {
public String solution(String s) {
String answer = "";
if(s.length()%2==0)
answer = Character.toString(s.charAt(s.length()/2-1)) + Character.toString(s.charAt(s.length()/2));
else
answer = Character.toString(s.charAt(s.length()/2));
return answer;
}
}
'Preparing Coding Test > Programmers L1' 카테고리의 다른 글
[Java] 문자열 다루기 기본 (0) | 2020.07.21 |
---|---|
[Java] x만큼 간격이 있는 n개의 숫자 (0) | 2020.07.21 |
[Java] 문자열 내림차순으로 배치하기 (0) | 2020.07.17 |
[Java] 두 정수 사이의 합 (0) | 2020.07.14 |
[Java] 2016년 (0) | 2020.07.14 |