50 文字の String オブジェクトを整数に解析しようとしています。100 行 (それぞれ 50 桁の数値) を含むデータ ファイルをスキャンして、数値の合計を計算しようとしています。
String を整数として解析しようとするたびに、呼び出しでNumberFormatExceptionがスローされます。
これが私がこれまでに持っているものです..
{
long totalSum = 0;
ArrayList<Long> list = new ArrayList<Long>();
// Create a new JFileChooser object.
JFileChooser fileChooser = new JFileChooser(
"C:\\Users\\Jon\\workspace\\Project Euler\\src");
// Create an "Open File" Dialog box for
// the user.
fileChooser.showOpenDialog(null);
// Get the file the user selects.
File inputFile = fileChooser.getSelectedFile();
try
{
Scanner in = new Scanner (inputFile);
String nextString = "";
// If the scanner has another token to scan,
// continue with the loop.
while (in.hasNext())
{
// The next string is the next number of characters
// that are not seperated by white space.
nextString = in.next();
try {
ing nextNumber = Integer.parseInt(nextString);
list.add(nextNumber);
} catch (NumberFormatException e) {
System.out.println ("NumberFormatException: " + e.getMessage());
}
}
in.close();
解析を試みる前に String オブジェクトを「トリミング」しようとしましたが、トリミングするものがありませんでした。スキャンしている行に空白はありません。
スキャンして値を計算しようとしているものの数行を次に示します。
37107287533902102798797998220837590246510135740250 46376937677490009712648124896970078050417018260538 74324986199524741059474233309513058123726617309629
API を確認し、スタックを徹底的に検索しました。これを回避する方法を知っている人はいますか?