본문 바로가기
백준 문제풀이/Java

[백준] 9086번 문자열 ⚠️

by isfp_yykkng 2024. 3. 19.

[백준] 9086번 문자열 - 자바

문제

해설

방법1) 내가 한 방식으로 charAt() 메서드를 String.valueOf() 를 활용하여 첫글자와 마지막글자만 따로 추출하여 출력한다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        for(int i = 0; i<n; i++){ 
           String str = sc.next();
           String first = String.valueOf(str.charAt(0));
           String end = String.valueOf(str.charAt(str.length()-1));
           System.out.println(first + end);
        }
        sc.close();
    }
}

 

방법2) 해설 참고 방식으로 문자열을 substring을 통해서 첫글자 부분과 마지막글자 부분을 각각 추출하여 합쳐 출력한다. 

* 문자열이 1자리수일 때도 고려해야 한다. else부분만 쓰면 StringIndexOutOfBoundsException  이 발생한다. ⚠️

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String[] strings = new String[n];
        for(int i = 0; i<n; i++){ //사용할 문자열을 미리 string 배열에 저장
            strings[i] = sc.next();
        }
        sc.close();
        for(int i=0; i<strings.length; i++){
            if(strings[i].length() < 1){
                System.out.println(strings[i] + strings[i]);
            }else {
                System.out.print(strings[i].substring(0, 1));
                System.out.println(strings[i].substring(strings[i].length() - 1, strings[i].length()));
            }
        }
    }
}

 

* 주의사항) 두 방식 모두 Scanner의 nextLine()이 아니라 next()를 사용하여 출력해야 한다.