最初にコードを見てみましょう
public class integerdemo {public static void main(string [] args){string num = null; System.out.println(integer.parseint(num)); //例外java.lang.numberformatexception system.out.println(integer.valueof(num)); //例外java.lang.numberformatexception system.out.println(string.valueof(num)); //出力null num = ""; System.out.println(integer.parseint(num)); //例外java.lang.numberformatexception System.out.println(integer.valueof(num)); //例外java.lang.numberformatexception system.out.println(string.valueof(num)); //空の文字列、出力はありません}}string.valueof()の書き込み方法を見てみましょう
string.valueof()は、nullおよび空の文字列に遭遇すると正常に出力でき、エラーはスローされません。
パッケージングタイプの整数がどのように処理されるかを見てみましょう
どちらの方法でも、ParseInt(S、10)は文字列Sを小数int基本タイプに変換することですが、Valueof()は、INT範囲に従って[-127、127]の内部キャッシュから取得されます(設計モードのエンティティモードを使用)
Parseint(S、10)を見てみましょう。この方法では、文字列が法的番号であるかどうかを判断し、null、空の文字列などの他の形式を検証するため、エラーが発生します。
public static int parseint(string s、int radix)スローNumberformatexception { / * *警告:この方法は、integercacheが初期化される前にVM初期化 *中に呼び出される場合があります。 Valueof Methodを使用しないように注意する必要があります。 */ if(s == null){throw new NumberformateXcection( "null"); } if(radix <character.min_radix){throw new NumberformateXception( "radix" + radix + "less less carcherper.min_radix"); } if(radix> character.max_radix){throw new NumberformateXcection( "radix" + radix + "gratge than thancard.max_radix"); } int result = 0;ブールネガティブ= false; int i = 0、len = s.length(); int limit = -integer.max_value; int multmin; int digit; if(len> 0){char firstchar = s.charat(0); if(firstchar <'0'){//可能なリーディング "+"または " - " if(firstchar == ' - '){negative = true; limit = integer.min_value; } else if(firstchar!= '+')shrow numberformatexception.forinputString(s); if(len == 1)//はlone "+"または " - "を持つことができません。 i ++; } multmin = limit / radix; while(i <len){// max_value digit = chariture.digit(s.charat(i ++)、radix)の近くの驚きを否定的に回避する。 if(digit <0){throw numberformatexception.forinputString(s); } if(result <multmin){throw numberformatexception.forinputString(s); } result *= radix; if(result <limit + digit){shrow numberformatexception.forinputString(s); } result- = digit; }} else {throw numberformatexception.forinputString(s); }ネガティブを返しますか?結果:-Result; }要約します
上記は、編集者によって紹介されたJavaのinteger.valueof、parsetint()string.valueofの違いと結果のコード分析です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!