【发布时间】:2023-03-23 16:47:01
【问题描述】:
所以我试图通过改变一个 String ArrayList 并在将上述 ArrayList 转换为 String 数组后返回一个字符串数组来解决 Java 中的 FizzBuzz 问题
这是我目前所拥有的:
import java.util.ArrayList;
public class FizzBuzz
{
public static void main(String args[])
{
ArrayList<String> arrList = new ArrayList<String>();
for (int i = 1; i<=100; i++)
{
arrList.add(String.valueOf(i));
}
for (int i = 0; i <arrList.size(); i++)
{
if (Integer.parseInt(arrList.get(i)) % 3 == 0 && Integer.parseInt(arrList.get(i)) % 5 == 0)
{
arrList.set(i, "FizzBuzz");
}
if (Integer.parseInt(arrList.get(i)) % 3 == 0)
{
arrList.set(i, "Fizz");
}
if (Integer.parseInt(arrList.get(i)) % 5 == 0)
{
arrList.set(i, "Buzz");
}
}
String[] arr = arrList.toArray(new String[arrList.size()]);
System.out.println(arr);
}
}
它给我的错误状态:
"Fizz"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at FizzBuzz.main(FizzBuzz.java:23)
我知道这个错误与无法检查 arrayList 中的字符串元素是否是 3,5 等的倍数有关,但这就是我使用 Integer.parseInt() 方法的原因这就是为什么我对自己做错了什么感到困惑。
任何帮助将不胜感激,谢谢。
【问题讨论】: