Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

Java開発ではキャストと呼ばれるデータ型の変換処理を頻繁に利用することになります。

本記事では、Javaプログラミング初心者向けにキャスト(型変換)処理について解説していきます。

Javaのキャストって何?


Javaなどのプログラミング言語では「型」と呼ばれるデータ形式の概念があり、元のデータ型を異なるデータ型に変換する処理のことを「キャスト」といいます。

暗黙的なキャスト

Javaでは、小さい型から大きな型に変換する場合、暗黙的に自動でキャスト処理が行われます。

小さい型をint型とした場合、「long型」「float型」「double型」に変換する場合、暗黙的なキャストが利用可能です。

明示的なキャスト

暗黙的なキャストと反対で、大きな型から小さい型に変換する場合、明示的にキャスト処理を実施する必要があります。

上述した例を用いると「long型」「float型」「double型」から「int型」に変換する場合には、明示的なキャストが必要です。

キャストの方法

では実際にJavaでどのようにキャストするのかというと下記の記述となります。

(データ型)変数名

例えばlong型の変数をint型に変換する場合は下記のようになります。

long ln = 12345;
int num = (int)ln;
ポテパンダの一言メモ

注意点として、キャストを実施する場合変換後のデータ型に値を格納出来る必要があります。
long型からint型に変換する場合、int型に格納できる数値でないとエラーとなってしまいます。

Javaで文字列型と数値型をキャストする方法


文字列型と数値型のキャストを実施する場合、それぞれに用意されたメソッドを利用することで変換処理が可能です。

数値型から文字列型への変換

数値型から文字列型への変換には、String型の「valueOf」メソッドが利用出来ます。

引数として設定した数値をString型へ変換します。

String str = String.valueOf(12345);

文字列型から数値型への変換

反対に文字列型から数値型へ変換するには、数値型それぞれに用意されている「parse」メソッドが利用出来ます。

例えばIntegerクラスの場合「parseInt」メソッドを利用します。

Integer int = Integer.parseInt("123");

他にも各クラスで下記のようなメソッドが用意されています。

数値型へのキャスト
  • Byte: parseByte
  • Short: parseShort
  • Long: parseLong
  • float: parseFloat
  • Double: parseDouble

キャスト処理をJavaのサンプルコードで確認しよう


では実際にサンプルコードでプログラムの処理内容を具体的に確認していきましょう。

拡大キャスト

まずは暗黙的な変換が可能な拡大キャストのサンプルコードです。

public class Main {

	public static void main(String[] args) {
		int num = 12345;
		long ln = num;
		System.out.println(ln);	
	}
}

実行結果は下記です。

12345

特にコードでキャスト処理を実装している部分はありませんが、暗黙的にキャスト処理が実行されています。

縮小キャスト

次に明示的な変換が必要な縮小キャストのサンプルコードです。

public class Main {

	public static void main(String[] args) {
		long ln = 12345;
		int num = (int)ln;
		System.out.println(num);	
	}
}

実行結果は下記です。

12345

ちなみに明示的なキャストをせずに実行しようとすると、下記のエラーが出力されます。

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	型の不一致: long から int には変換できません

数値から文字列

次はStringクラスのvalueOfメソッドを使用して、数値から文字列へキャストするサンプルコードです。

public class Main {

	public static void main(String[] args) {
		long ln = 12345;
		int num = 6789;
		
		String str1 = String.valueOf(ln);
		String str2 = String.valueOf(num);
		System.out.println(str1 + str2);	
	}
}

実行した結果が下記です。

123456789

サンプルではint型とlong型の変数を文字列へ変換した上でコンソール出力しています。

数値型の場合「+」記号を利用すると足し算が実行されますが、文字列へのキャスト処理が行われているため、実行結果のように文字列連結された状態で出力されます。

文字列から数値

次は反対に文字列から数値へのキャストを「parse」メソッドで実施するサンプルです。

public class Main {

	public static void main(String[] args) {
		String str1 = "12345";
		String str2 = "678.9";
		
		int num = Integer.parseInt(str1);
		double db = Double.parseDouble(str2);
		System.out.println(num + db);	
	}
}

実行した結果が下記です。

13023.9

文字列で定義した変数を数値型にキャストしているため、「+」演算子で数値としての計算が実施されサンプルのような結果が出力されます。

ちなみにdouble型では対応可能な小数点ですが、下記のようにint型へキャストしようとするとエラーとなるため注意してください。

public class Main {

	public static void main(String[] args) {
		String str1 = "12345";
		String str2 = "678.9";
		
		int num1 = Integer.parseInt(str1);
		int num2 = Integer.parseInt(str2);
		System.out.println(num1 + num2);	
	}
}

実行した結果が下記のエラーです。

Exception in thread "main" java.lang.NumberFormatException: For input string: "678.9"
	at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

さいごに: Javaのキャスト処理は実践での必須知識


本記事では、Javaにおけるデータ型の変換「キャスト」処理について解説してきました。

宣言したデータ型とは異なるデータ型として処理を行いたい機会は意外に多く、実践プログラムにおける必須知識の1つです。

クラスなどの概念にあまり慣れていないプログラム初心者の方には少しややこしい内容かも知れませんが、Javaのプログラム開発では頻繁に用いられる機能ですので、実際に手を動かしながらキャスト処理の内容を理解できるよう学習してみてください。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。