배움과 기록의 장
[백준] 9086번: 문자열 (Java) 본문
✅ 문제
https://www.acmicpc.net/problem/9086
✅ 풀이
- 처음에 num 인풋을 nextInt()를 이용하여 받은 후, 그 다음 인풋을 nextLine()으로 받았더니 인덱스에러가 떴다. nextInt()가 엔터 전까지만 입력을 받아 nextLine이 엔터를, 즉 공백을 입력 받기 때문에 생기는 문제라고 한다. 그래서 똑같이 nextLine()로 입력받아 Integer.parseInt()를 통해 string을 int로 변환해주었다.
- string을 int로 바꾸는 방법에는, 'Integer.parseInt(str)'를 사용하거나, 'str.charAt(0) - 48'로 char로 바꾼 후 아스키코드를 이용하는 방법이 있다. 단 후자는 한자리 숫자일 때만 가능하다.
- char + char을 하면 아스키코드로 인해 int로 계산된다. 이를 방지하고 문자열 더하기를 해주기 위해,' ""+ '를 추가해주거나 'String.valueOf(~) + String.valueOf(~)'를 사용해주면 된다.
✅ 코드
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//입력 sc.nextLine()
int num = Integer.parseInt(sc.nextLine()); // int num = Integer.parseInt(sc.nextLine());
for(int i = 0; i < num; i++){
String input = sc.nextLine();
System.out.println(""+input.charAt(0) + input.charAt(input.length()-1)); //String.valueOf()
}
}
}
반응형
'problem solving' 카테고리의 다른 글
[백준] 2941번: 크로아티아 알파벳 (Java) (0) | 2023.03.09 |
---|---|
[백준] 1157번: 단어 공부 (Java) (0) | 2023.03.09 |
[백준] 10988번: 팰린드롬인지 확인하기 (Java) (0) | 2023.03.09 |
[백준] 10812번: 바구니 순서 바꾸기 (Java) (0) | 2023.03.09 |
[백준] 11718번: 그대로 출력하기 (Java) (0) | 2023.03.01 |