https://www.acmicpc.net/problem/28702
문자열이 숫자인지를 구분해야 풀 수 있는 문제로 정규표현식을 사용해야 했으며
https://djun95.tistory.com/16 님을 참고했다.
package com.example.baekjoon;
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for(int i = 3; i > 0; i--){
String s = br.readLine();
if(s.matches("-?\\d+(\\.\\d+)?")){ // 정규 표현식을 사용
int n = Integer.parseInt(s) + i;
// 3부터 시작해야하는 이유
// 3번 반복한다고 i < 3으로 둔다면 마지막 수에 3을 더하는게 되어버려서 예제 1을 기준으로 했을때 14가 나와버림
// 거꾸로 생각해보면 예제1 출력값은 12 입력값들은 9 10 11이므로 3 2 1 크기로 감소하게 해야한다.
if(n % 3 == 0){
if (n % 5 == 0) {
System.out.println("FizzBuzz");
}else {
System.out.println("Fizz");
}
} else if (n % 5 == 0) {
System.out.println("Buzz");
}else {
System.out.println(n);
}
return; // 강제종료
}
}
}
}```