JavaでStringをintに変換する方法web-dev-qa-db-ja.com/home/日本語/java/JavaでStringをintに変換する方法JavaでStringをintに変換する方法JavaでStringをintに変換する方法を教えてください。私の文字列は数字だけを含んでいるので、私はそれが表す数字を返したいと思います。文字列"1234"を指定すると、結果は数値1234になります。"catch"はこの関数がNumberFormatExceptionを投げることができるということに気づくでしょう。これを処理しなければなりません。0;}(この処理はデフォルトで0に誤った形式の数値を与えますが、あなたが好きなら他のことをすることができます。)あるいは、GuavaライブラリのIntsメソッドを使用することもできます。8のOptionalと組み合わせて、文字列をintに変換する強力で簡潔な方法になります。Hruskaたとえば、これは2つの方法です。Integer.parseInt(str);これらの方法にはわずかな違いがあります。valueOfは、Java.lang.Integerの新規またはキャッシュされたインスタンスを返しますparseIntはプリミティブintを返します。Short.valueOf/parseShort、Long.valueOf/parseLongなど、すべての場合に同じことが言えます。記述されているように、IntegerパーサーがNumberFormatExceptionをスローすることです。exception.}分割引数から整数値を取得しようとしたり、何かを動的に解析したりするときは、この例外を処理することが重要です。Akdurak手動で実行してください。Billz現在私は大学のために課題をやっています、ここで私は上のもののような特定の表現を使うことができない、そしてASCIIテーブルを見ることによって、私はそれをすることができました。これははるかに複雑なコードですが、私のように制限されている他の人に役立つ可能性があります。最初にやるべきことは、入力、この場合は数字列を受け取ることです。"12";もう一つの制限は、私は繰り返しのサイクルを使うことができなかったという事実でした、それで、(それは完璧であったであろう)forサイクルもまた使うことができません。これで少し制限がありますが、これもまた目標です。2桁しか必要ないので(最後の2桁を取る)、単純なcharAtはそれを解決しました。number.charAt(number.length()-1);コードを入手したら、テーブルを調べて必要な調整をするだけです。"奇妙な"ステップのせいで。現在、1と2の2つの倍精度がありますが、12に変換する必要があります。できることはありません。0.2のように(したがってなぜ2倍に)10で割ることになります。lastdigit/10;これは単に数字で遊んでいます。最後の桁を10進数に変換していました。今、何が起こるか見てください。1.2数学に入り込むことなしに、我々は単にユニットを数の数字から分離しています。"()"そしてそこに行きます。次の制限を考慮して、数字のストリング(この場合は2桁)をこれら2桁の数字で構成される整数に変換しました。NumberUtilsを使うことです。NumberUtils.toInt("1234");文字列が無効な数値形式の場合は常に0が返されるため、ApacheユーティリティはNiceです。catchブロックを節約できます。NumberFormatExceptionを使うこともできます。Integerintの代わりにIntegerを取得したい場合は、次のようにします。ROMANIA_engineer与えられたStringがIntegerを含まないという可能性がごくわずかである場合はいつでも、この特別なケースを処理しなければなりません。残念ながら、標準のJavaメソッドInteger::parseIntおよびInteger::valueOfは、この特殊なケースを知らせるためにNumberFormatExceptionをスローします。したがって、フロー制御には例外を使用する必要があります。これは一般に不適切なコーディングスタイルと見なされています。私の意見では、この特別なケースはOptional<Integer>を返すことによって処理されるべきです。Javaはそのようなメソッドを提供していないので、私は次のラッパーを使用します。-1System.out.println(tryParseInteger("foobar").orElse(-1));これはまだフロー制御のために例外を内部的に使用していますが、用法コードは非常にきれいになります。Dollase文字列をintに変換することは、単に数値を変換することよりも複雑です。なっていますか?それは可能ですか(会計番号を参照)。プリミティブintを生成します。str)メソッドを使うことができます。str)メソッドも提供します。strValue)を変換に使用することもできます。以下のことを忘れないでください。//例外(0以外)例外の種類は1つだけです。Bauer私は解決策を持っていますが、それがどれほど効果的かはわかりません。それはうまくいきます、そして私はあなたがそれを改善することができると思います。いくつかのテストをしました。機能とテストを添付しました。8のIntegerを使うことができます。NPE.ここではInteger.valueOfとOptinalを組み合わせるだけです。nullチェックを避けたい場合などです。8以前のコードは次のようになります。これは、文字列を解析できなかった場合にnullを返します。Fedorenko数字以外のすべての文字を削除してからintを解析することから始めることもできます。Integer.parseInt(mystr);しかし、これは負でない数に対してのみ有効であることに注意してください。Thijser上記の答えとは別に、いくつかの機能を追加したいと思います。}実行中の結果は次のとおりです。nxhoafあなたが確実に数字が常に有効な整数になると確信しているプログラミング競技会では、あなたは入力を解析するためにあなた自身のメソッドを書くことができます。これはすべての検証関連のコードをスキップし(あなたはそれを必要としないので)、もう少し効率的になります。str.trim()を実行してください。NumberUtilsがそれを実行できます。文字列をintに変換できない場合は0を返します。独自のデフォルト値を定義することもできます。Fattahiいくつかの注意を払って、このコードも使用できます。オプション1:メッセージダイアログを表示して現在のワークフローの実行を停止するなど、例外を明示的に処理します。return;}オプション2:例外が発生した場合に実行フローを続行できる場合は、影響を受ける変数をリセットします。catchブロックにいくつかの変更を加えます。0;}比較や計算のために文字列定数を使用することは、常に良い考えです。定数はnull値を返さないからです。Scanner("1244").nextInt()を使うことができます。foo=Integer.parseInt("1234");文字列に数値以外のデータが含まれていないことを確認してください。iKing通常の文字列の場合は、次のものを使用できます。bufferの場合は、次のものを使用できます。Aditya単にこれを試すことができます:Stringをintに変換するにはInteger.parseInt(your_string);を使用してください。Stringをdoubleに変換するにはDouble.parseDouble(your_string);を使用してください。ShivanandamStringをパラメータとするIntegerコンストラクタについて言及していないことに少し驚いています。コンストラクターはInteger型を返し、アンボックス化操作は値をintに変換します。言及することは重要ですこのコンストラクタはparseIntメソッドを呼び出します。djm.im整数以外の文字が入力された場合に備えて、Integer.parseInt()を使用してtry...catchブロック内に入れ、エラーを処理します。David1つのメソッドはparseInt(String)です。プリミティブなintを返します。Integer.parseInt(number);System.out.println(result);2番目のメソッドはvalueOf(String)です。新しいInteger()オブジェクトを返します。Jadiちなみに、文字列がnullの場合は、次の呼び出しを行います。Integer.parseInt(null);nullPointerExceptionではなく、NumberFormatExceptionをスローします。s)はNumberFormatExceptionをスローしますInteger.parseInt()を使ってStringをintに変換することができます。20をプリミティブint型に変換します。s)がNumberFormatExceptionをスローしますあなたはInteger.valueOf()を使うことができます、これでそれはIntegerオブジェクトを返します。GamageStringをIntに変換する方法のいくつかは次のとおりです。Integer.parseInt(test);Integer.valueOf()を使うこともできます。IntegerクラスのparseIntメソッドを使用して文字列を整数に変換します。parseIntメソッドは、Stringをintに変換し、ストリングをint型に変換できない場合はNumberFormatExceptionをスローします。“1”,のような有効な整数であり、それがJavaのintに変換される場合。なんらかの理由で失敗した場合、変更によってNumberFormatExceptionがスローされる可能性があるため、これを考慮するためにコードをもう少し長くする必要があります。整数parseIntプロセスはNumberFormatExceptionをスローします。これはtry/catchブロックで処理する必要があります。karthik_varma_kInteger.parseInt()を使用してください。これは文字列値をintに解析するのに役立ちます。Alekyaこの方法を使用してください。sheikhiStringをさまざまに入力してこのコードを試してください。Chhabra私は文字列入力をintかlongにパースするためのこの速い方法を書きました。11のInteger.parseIntまたはLong.parseLongより速いです。あなたはintを要求しただけですが、私はロングパーサも含めました。以下のコードパーサーは、それが速く動作するためにパーサーのメソッドが小さいことを要求します。代替バージョンはテストコードの下にあります。代替バージョンはかなり速く、そしてそれはクラスのサイズに依存しません。このクラスはオーバーフローをチェックし、あなたはあなたのニーズに適応するようにコードをカスタマイズすることができます。空の文字列は私の方法では0になりますが、それは意図的なものです。あなたはあなたのケースを適応させるためにそれを変更するか、またはそのまま使用することができます。これはparseIntとparseLongが必要とされるクラスの一部です。これは基数10の数値のみを扱うことに注意してください。Intパーサのテストコードは以下のコードの下にあります。}}テストコードセクションこれには約200秒かかります。*/また非常に速い代替方法。powの配列は使用されていませんが、ビットシフトによる10倍の乗算の数学的最適化に注意してください。文字列がJavaの整数かどうかを判別java:floatをStringに、Stringをfloatに変換するどうやってStringに変換/キャストするのですか?JavaでInputStreamを読み込んでStringに変換する方法を教えてください。