2020/08/24 公開
・文字列配列をdouble配列に変換
配列に格納されているStringをdouble型の配列に変換するプログラムを紹介します。これは、コマンドラインで渡されたString型の引数を数値型に変換するのに使用できます。以下は、double型の配列に変換する例です。
例)String型の配列strをdouble型の配列numに変換
str[ 0 ] = "10.3" → num[ 0 ] = 10.3
str[ 1 ] = "65.2" → num[ 1 ] = 65.2
str[ 2 ] = "-1293.67" → num[ 2 ] = -1293.67
str[ 3 ] = "255" → num[ 3 ] = 255.0
str[ 4 ] = "0.033" → num[ 4 ] = 0.033
以下は、String型の配列をdouble型の配列に変換するソースコード例です。
StringstoNumbers2.java ← クリックしてダウンロードページに移動001: public class StringstoNumbers2 { 002: // String型の配列からdouble型の配列を作成 003: public static double[] getNumbers( String[] str ) { 004: // strがnullならnullを戻す 005: if ( null == str ) return null; 006: 007: // String配列と同じ要素数のdouble型配列を作成 008: double[] num = new double[ str.length ]; 009: 010: // String型の値をint型の値に変換 011: for ( int i = 0; i < str.length; i++ ) { 012: try { 013: double value = Double.valueOf( str[ i ] ); 014: num[ i ] = value; 015: } 016: catch( NumberFormatException ne ) 017: { 018: return null; 019: } 020: } 021: 022: // 配列numを戻す 023: return num; 024: } 025: 026: // メイン 027: public static void main( String[] args ) { 028: // コマンドライン引数をdouble型の配列numbersに変換 029: double[] numbers = getNumbers( args ); 030: 031: // 配列の作成に失敗したらreturn文でメソッドを抜ける 032: if ( null == numbers ) { 033: System.out.println( "変換に失敗しました!" ); 034: return; 035: } 036: 037: // 変換結果を表示 038: for ( int i = 0; i < numbers.length; i++ ) 039: System.out.println( numbers[ i ] ); 040: } 041: }
StringstoNumbers2を実行
C:\talavax\javasample>java StringstoNumbers2 10.3 65.2 -1293.67 255 0.033
StringstoNumbers2.javaの出力結果
10.3 65.2 -1293.67 255.0 0.033
次にエラーになるケースですが、このプログラムは、数値以外の文字列を渡すとエラーになります。小数点'.'/プラス'+'/マイナス'-'/指数表記'e'はエラーになりません。
数値以外を引数として渡す
C:\talavax\javasample>java StringstoNumbers2 A B C
出力結果
変換に失敗しました!
ここからは、変換するメソッドについて解説します。
002: // String型の配列からdouble型の配列を作成 003: public static double[] getNumbers( String[] str ) {
String配列をint型の配列に変換するメソッドgetNumbers1を定義しています。引数にstring型の配列strを渡します。
004: // strがnullならnullを戻す 005: if ( null == str ) return null;
引数strがnullの場合、return文でnullを戻します。
007: // String配列と同じ要素数のdouble型配列を作成 008: double[] num = new double[ str.length ];
配列strと同じ要素数で、double型の配列numを作成します。
010: // String型の値をint型の値に変換 011: for ( int i = 0; i < str.length; i++ ) { 012: try { 013: double value = Double.valueOf( str[ i ] ); 014: num[ i ] = value; 015: } 016: catch( NumberFormatException ne ) 017: { 018: return null; 019: } 020: }
String配列strに格納されている文字列を変換し、double型の配列numに格納しています。Stringの変換には、Double.valueOfメソッドを使っています。
Double.valueOfメソッド
■指定されたStringの値を保持するDoubleオブジェクトを返します。 パラメータ s : 整数(Doubleクラス)に変換する文字列の値 戻り値 Doubleクラスの値
try { ~ } catchは、失敗する可能性がある処理を波括弧で囲み、その処理に失敗したときにcatch { ~ }の波括弧で囲まれた処理を実行するということです。この場合、文字列がdouble型に変換できないときにcatch { ~ }の処理が実行されます。
入力した文字がdouble型の値に変換できない場合、メソッドはnullを戻して終了します。このメソッドの場合、文字列に小数点が含まれているとエラーとなります。
以上が、String配列をdouble型の配列に変換する方法です。
■関連コンテンツ
Javaの配列 | 同じ型の変数をまとめた配列について解説 |
文字列配列をint配列に変換 | String[]→int[] |
■新着情報
2022.07.07 | 外部プログラムの実行 | exeファイル実行 |
2022.07.06 | 完全数 | 6=1+2+3 |
■広告