1. ホーム
  2. java

[解決済み] Integer.valueOf() vs. Integer.parseInt() [重複]について

2022-04-15 15:13:37

質問

はさておき Integer.parseInt() はマイナス記号を処理しますが、他に何か違いがありますか? Integer.valueOf()Integer.parseInt() ?

そして、どちらもパースできないので , として 10進数 を生成する)。 NumberFormatException ) を行うためのJavaメソッドは既に存在するのでしょうか?

どのように解決するのですか?

実は valueOfparseInt を内部で使用しています。その差は parseIntint プリミティブでありながら valueOfInteger オブジェクトを作成します。Integer.classのソースから考えてみましょう。

public static int parseInt(String s) throws NumberFormatException {
    return parseInt(s, 10);
}

public static Integer valueOf(String s, int radix) throws NumberFormatException {
    return Integer.valueOf(parseInt(s, radix));
}

public static Integer valueOf(String s) throws NumberFormatException {
    return Integer.valueOf(parseInt(s, 10));
}

カンマを使った解析については、私は詳しくないのですが。私ならサニタイズします。

int million = Integer.parseInt("1,000,000".replace(",", ""));