백준 티어를 열심히 올려보고자 백준 홈페이지를 들어갔으나
나의 약점 문자열 문제에 맞닥뜨리고 말았다 .. !
그래서 시작된 나의 투자 .. ㅎㅎ
이제 charAt()메소드가 포함된 문제 같은 걸 많이 풀어봐야겠다 ㅎㅎ ..

첫번째 문자를 출력하기 위해선 charAt(0)를 써야 한다.
scanner로 입력받으면 문자열 형태로 존재하게 되는데 여기선 바로 char타입을 사용할 수 없게 되는 것이다.
기본형 변수인 char는 단 한 글자만 저장할 수 있는 변수인데
Scanner로 입력을 받을 때는 String 타입으로 밖에 받을 수 없는 것이다.
그래서 등장한 것이 바로 CharAt()이라는 메소드이다.
이 메소드는 string으로 저장된 문자열 중에서
한 글자만 선택해서 char타입으로 변환해주는 메소드이다.
이 녀석이 존재하고 있기 때문에 우리는 scanner를 쓰면서도 char타입을 사용할 수 있는 것이다.
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String str[] = new String[10]; // 문자열을 저장할 배열
int num=scanner.nextInt(); // 테스트 케이스의 개수
scanner.nextLine(); //버퍼 비우기
for(int i=0; i<num; i++){
str[i]=scanner.nextLine();
}
char first = ' ', last = ' ';
for (int i = 0; i < num; i++) {
first = str[i].charAt(0); //첫번째 문자 출력
System.out.print(first);
//마지막 문자 출력하기
int lastIndex=str[i].length()-1; //마지막 문자의 인덱스
last=str[i].charAt(lastIndex);
System.out.println(last); //마지막 문자 출력하기
}
}
}
마지막 문자의 인덱스는 0부터 시작하기 때문에 마지막 문자의 길이-1을 해서 마지막 문자의 인덱스를
char last에 저장하여 출력한다.
이제 bufferedReader로 다시 풀어보면


위에는 bufferedReader로 푼것이고 마지막은 scanner로 푼 방법이다
시간 차이가 많이 나긴 하네 ..
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class first_last {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s=br.readLine();
int num=Integer.parseInt(s);
String s1[]=new String[10];
for(int i=0; i<num; i++){
s1[i]=br.readLine();
}
//
for(int i=0; i<num; i++){
System.out.print(s1[i].charAt(0));
int lastIndex=s1[i].length()-1;
System.out.print(s1[i].charAt(lastIndex));
System.out.println();
}
}
}
문자열은 배열에 저장하고 꺼내는 것이 정답이다