問題を解決して2つの入力整数を反転し、結果を加算しようとしました。これを行うための明白な方法は、モジューロを取って各桁を取得し、それを元に戻すことですが、整数を文字列に変換して、簡単に反転させてからintに変換し直したいそれと答えを返す。Integer.parseInt()の使用時に実行時エラーが発生しました
コード:
import java.util.*;
class TestClass {
public static void main(String args[]) throws Exception {
/*
* Read input from stdin and provide input before running
* Use either of these methods for input
//BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
int N = Integer.parseInt(line);
*/
//Scanner
Scanner s = new Scanner(System.in);
int N = s.nextInt();
String num1= " ";
String modnum1= " ";
String num2= " ";
String modnum2= " ";
int s1=0;
int s2=0;
while (N!=0)
{
int x=s.nextInt();
int y=s.nextInt();
//System.out.println(x+" "+y);
num1=Integer.toString(x);
num2=Integer.toString(y);
for (int i=(num1.length()-1); i>=0; i--)
{
modnum1=modnum1 + num1.charAt(i);
}
//System.out.println(modnum1);
// for (int j=(num1.length()-1); j>=0; j--)
//{
// modnum2=modnum2 + num2.charAt(j);
//}
s1=Integer.parseInt(modnum1);
System.out.println(s1);
}
N--;
}
//System.out.println("Hello World!");
}
これは私が取得していますエラーです:
Exception in thread "main" java.lang.NumberFormatException: For input string: " 543"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:569)
at java.lang.Integer.parseInt(Integer.java:615)
at chiller.main(chiller.java:40)
ライン40私はparseInt
を使用しているラインです。 .trim()
ハックも使用しましたが、それでも動作しません。
エラーとは何ですか? – Compass
'modnum1'の内容は何ですか?私は最初にスペースを入れています。それを印刷しますが、 's1 = Integer.parseInt(modnum1.trim());'がそれを見つけられるかもしれないと思います。 –
私は '' modnum1'を空白で初期化するのは賢明ではないと思っていますし、 '' 1234 ''のような文字列が有効な数字を表すことを望みます。 – Tom