Javaプログラミング学習サイト ゆるゆるプログラミング

・文字列配列をint配列に変換

配列に格納されているStringをint型配列に変換するプログラムを紹介します。これは、コマンドラインで渡されたString型の引数を数値型に変換するのに使用できます。以下は、int型配列に変換する例です。

例)String型の配列strをint型配列numに変換

 str[ 0 ] = "599" → num[ 0 ] = 599

 str[ 1 ] = "10" → num[ 1 ] = 10

 str[ 2 ] = "21" → num[ 2 ] = 21

 str[ 3 ] = "33" → num[ 3 ] = 33

 str[ 4 ] = "1034" → num[ 4 ] = 1034

以下は、String型の配列int型配列に変換するソースコード例です。

StringstoNumbers1.java ← クリックしてダウンロードページに移動
001:    public class StringstoNumbers1 {
002:    	// String型の配列からint型の配列を作成
003:    	public static int[] getNumbers( String[] str ) {
004:    		// strがnullならnullを戻す
005:    		if ( null == str ) return null;
006:    
007:    		// String配列と同じ要素数のint型配列を作成
008:    		int[] num = new int[ str.length ];
009:    
010:    		// String型の値をint型の値に変換
011:    		for ( int i = 0; i < str.length; i++ ) {
012:    			try {
013:    				int value =  Integer.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:    		// コマンドライン引数をint型の配列numbersに変換
029:    		int[] 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:    }

StringstoNumbers1を実行

C:\talavax\javasample>java StringstoNumbers1 599 10 21 33 1034

引数で渡した文字列整数に変換してコンソール出力します。

StringstoNumbers1.javaの出力結果

599
10
21
33
1034

正常に渡した文字列コンソール出力されています。

次にエラーになるケースを考えてみます。以下の2つの方法でプログラムを実行するとエラーになります。

①数字に小数点を付けた数値を引数として渡す

C:\talavax\javasample>java StringstoNumbers1 599 10.0 21 33 1034

出力結果

変換に失敗しました!

2つ目の引数10.0に小数点があるのでエラーになります。

②数字以外を引数として渡す

C:\talavax\javasample>java StringstoNumbers1 A B C

出力結果

変換に失敗しました!

1~3番目の引数がアルファベットなのでエラーになります。

ここからは、変換するメソッドについて解説します。

002:    	// String型の配列からint型の配列を作成
003:    	public static int[] getNumbers( String[] str ) {

String配列int型配列に変換するメソッドgetNumbersを定義しています。引数にstring型の配列strを渡します。

004:    		// strがnullならnullを戻す
005:    		if ( null == str ) return null;

引数strがnullの場合、return文でnullを戻します。

007:    		// String配列と同じ要素数のint型配列を作成
008:    		int[] num = new int[ str.length ];

配列strと同じ要素数で、int型配列numを作成します。

010:    		// String型の値をint型の値に変換
011:    		for ( int i = 0; i < str.length; i++ ) {
012:    			try {
013:    				int value =  Integer.valueOf( str[ i ] );
014:    				num[ i ] = value;
015:    			}
016:    			catch( NumberFormatException ne )
017:    			{
018:    				return null;
019:    			}
020:    		}

String配列strに格納されている文字列を変換し、int型配列numに格納しています。Stringの変換には、Integer.valueOfメソッドを使っています。

Integer.valueOfメソッド

public static Integer valueOf( String s )
■指定されたStringの値を保持するIntegerオブジェクトを返します。

  パラメータ s : 整数(Integerクラス)に変換する文字列の値

  戻り値     Integerクラスの整数の値

try { ~ } catchは、失敗する可能性がある処理を波括弧で囲み、その処理に失敗したときにcatch { ~ }の波括弧で囲まれた処理を実行するということです。この場合、文字列int型に変換できないときにcatch { ~ }の処理が実行されます。

入力した文字がint型の値に変換できない場合、メソッドnullを戻して終了します。このメソッドの場合、文字列に小数点が含まれているとエラーとなります。

以上が、String配列int型配列に変換する方法です。

■関連コンテンツ

Javaの配列 同じ型の変数をまとめた配列について解説
文字列配列をdouble配列に変換 String[]→double[]

■新着情報

2020.10.28 1からNの和 1+2+3+ … +N=?
2020.10.21 画像の上下反転 画像を上下反転する方法
2020.10.19 指定色の画素数取得 指定RGBの画素数は何個?
2020.10.13 2値化 その2 2値のBMP画像を作成
2020.10.07 3辺の長さで三角形かを判定 3辺abcで三角形が作れるか?
2020.10.06 画像のミラー反転 画像をミラー(鏡)反転する方法
2020.09.03 お札とコインの数 必要なお札と硬貨の枚数?

■広告

フィギュア予約最大25%OFF+ポイント5%還元!ホビーサーチ

~約8,000名の受講生と80社以上の導入実績~ 企業向けプログラミング研修ならCodeCamp

日本最大級ショッピングサイト!お買い物なら楽天市場

 

 

 

 

 

 

 

 

Topへ