백준/20001 - 25000
[백준] 21966번 : 중략(JAVA)
lms0806
2021. 7. 19. 00:40
728x90
반응형
https://www.acmicpc.net/problem/21966
21966번: (중략)
알파벳 대문자, 알파벳 소문자, 쉼표, 마침표의 아스키 코드는 각각 65-90, 97-122, 44, 46이다.
www.acmicpc.net
풀이
문자열의 길이가 25이하면 그대로 출력
25이상이면 앞에서 11글자, 뒤에서 11글자를 제외한 글자를 ...으로 생략 후 출력한다.
제외한 글자가 한 글자가 아니면(중간에 .이 있을 경우) 앞에서 9글자, 뒤에서 9글자를 제외한 글자를 ......으로 생략 후 출력한다.
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
br.readLine();
String str = br.readLine();
StringBuilder sb = new StringBuilder();
if(str.length() <= 25) {
sb.append(str);
}
else {
String s = str.substring(12, str.length()-12);
boolean b = true;
for(char ch : s.toCharArray()) {
if(ch == '.') {
b = false;
break;
}
}
sb.append(b ? str.substring(0,11) + "..." + str.substring(str.length()-11) : str.substring(0,9) + "......" + str.substring(str.length()-10));
}
System.out.print(sb);
}
}
728x90
반응형