본문 바로가기
백준/20001 - 25000

[백준] 21966번 : 중략(JAVA)

by lms0806 2021. 7. 19.
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
반응형

댓글