javaのインスタンスについて

 
プログラミング学習の総合サイト
侍エンジニア塾ブログロゴ
BLOG
ブログ
SERVICE
事業内容
COMPANY
会社案内
RECRUIT
採用情報
無料体験レッスン
ホーム
インタビュー
カリキュラム
チュートリアル
学習コラム
学習プラン診断
無料学習相談
Python, フリーランス

スライドショー
 
ブログトップ > プログラミング > Java > Java 入門
【Java】String型をint型に変換する
オータケ オータケ
2017/1/24

2019/6/4

こんにちは！フリーランスのオータケです。

皆さんはJavaの文字列をint型に変換する方法を覚えていますか？

また、int型の数値を文字列に変換する方法を覚えていますか？変換に失敗した場合はどうなるか知っていますか？この記事を見ればJavaの文字列をint型に変換する方法がわかりやすく学べます！

この記事では、文字列をint型に変換する方法について

String型からint型への変換方法
String型からその他の数値型への変換方法
数値型からString型への変換方法
String型の値が数値かチェックする
など具体的な内容についても解説していきます。今回は文字列をint型に変換する方法について、使い方をわかりやすく解説します！

この記事の目次

1 String型と数値型との型変換メソッド一覧
2 String型からint型への変換方法(parseInt)
3 String型からその他の数値型への変換方法
3.1 byte型への変換(parseByte)
3.2 short型、long型への変換(parseShort、parseLong)
3.3 小数値(float, double)への変換(parseFloat、parseDouble)
3.4 valueOfメソッドを使う方法
4 数値型からString型への変換方法
4.1 valueOfを使う方法
4.2 toStringを使う方法
5 String型の値が数値かチェックする
5.1 try-catch文で例外処理
5.2 正規表現でチェック
6 Stringの使い方の総まとめ記事はこちら
7 まとめ
String型と数値型との型変換メソッド一覧
Sting型⇔数値型変換のメソッド、書き方について表にまとめました。

変換前の型	変換後の型	メソッド	書き方例
String	int	Integer.parseInt
Integer.valueOf	Integer.parseInt("1")
Integer.valueOf(“1”)
byte	Byte.parseByte
Byte.valueOf	Byte.parseByte(“1”)
Byte.valueOf(“1”)
short	Short.parseShort
Short.valueOf	Short.parseShort(“1”)
Short.valueOf(“1”)
long	Long.parseLong
Long.valueOf	Long.parseLong(“1”)
Long.valueOf(“1”)
float	Float.parseFloat
Float.valueOf	Float.parseFloat(“1”)
Float.valueOf(“1”)
double	Double.parseDouble
Double.valueOf	Double.parseDouble(“1”)
Double.valueOf(“1”)
数値型(int, byte, short, long, float, double)	String	String.valueOf	String.valueOf(1)
int	String	Integer.toString	Integer.toString(1)
byte	String	Byte.toString	Byte.toString((byte)1)
short	String	Short.toString	Short.toString((short)1)
long	String	Long.toString	Long.toString(1l)
float	String	Float.toString	Float.toString(1.0f)
double	String	Double.toString	Double.toString(1.0)
String型から数値型への変換はparseInteger、paraseByte、parseFloatなどのメソッドやvalueOfメソッドが使用できます。数値型から文字列型への変換はvalueOfメソッドやtoStringメソッドが使用できます。

それぞれの使用例についてサンプルコードで確認していきましょう。

String型からint型への変換方法(parseInt)
文字列をint型の数値に変換するには下記のようなサンプルコードになります。

IntegerクラスのparsIntやvalueOfを使うことでint型に変換が可能です。

public class Main {
	public static void main(String[] args) {
 
		String hoge = "1";
		int num = Integer.parseInt(hoge);
		System.out.println(num);
	}
}
実行結果：

1
String型からその他の数値型への変換方法
文字列から数値に変換するためにはそれぞれの目的にあったメソッドを使うことで実現することができます。

byte型への変換(parseByte)
文字列をbyte型の数値に変換するには下記のようなコードを書きます。ByteクラスのparseByteを使うことでbyte型に変換が可能です。

public class Main {
	public static void main(String[] args) {
 
		String hoge = "1";
		byte result = Byte.parseByte(hoge);
		System.out.println(result);
	}
}
実行結果：

1
short型、long型への変換(parseShort、parseLong)
short型、long型の場合は下記のようになります。short型への変換の場合、ShortクラスのparseShortメソッドを使いましょう。

long型への変換はLongクラスのparseLongメソッドを使います。

public class Main {
	public static void main(String[] args) {
 
		String hoge = "1";
		
		short result1 = Short.parseShort(hoge);
		System.out.println(result1);
		
		long result2 = Long.parseLong(hoge);
		System.out.println(result2);
	}
}
実行結果：

1
1
小数値(float, double)への変換(parseFloat、parseDouble)
byte型への変換やint型への変換と同様、小数点に変換する場合は下記のようにします。float型への変換はFloat.parseFloatメソッドを使いましょう。

そしてdouble型への変換はDouble.parseDoubleメソッドを使います。

public class Main {
	public static void main(String[] args) {
 
		String hoge = "1";
 
		float result1 = Float.parseFloat(hoge);
		System.out.println(result1);
 
		double result2 = Double.parseDouble(hoge);
		System.out.println(result2);
	}
}
実行結果：

1.0
1.0
valueOfメソッドを使う方法
今解説したそれぞれのInteger、Short、LongといったクラスにはvalueOfメソッドというものが存在しています。このメソッドを使うことで文字列を変数に変換することができます。

各型クラスのvalueOfメソッドを使った場合は戻り値はその型クラスと同じ型で返すようになっています。

public class Main {
 
    public static void main(String[] args) {
        String hoge = "1";
        
        System.out.println(Integer.valueOf(hoge));
        System.out.println(Byte.valueOf(hoge));
        System.out.println(Short.valueOf(hoge));
        System.out.println(Long.valueOf(hoge));
        System.out.println(Float.valueOf(hoge));
        System.out.println(Double.valueOf(hoge));
    }
 
}
実行結果：

1
1
1
1
1.0
1.0
このサンプルコードでは、例えば1番目にIntegerのvalueOfメソッドを呼び出しているので呼び出し後、Integerクラスに変換しています。

数値型からString型への変換方法
次に数値を文字列に変換する方法を見てみましょう。

valueOfを使う方法
valueOfというメソッドを使って文字列に変換する方法を見てみましょう。

先程の「文字列から数値への変換」でvalueOfを使うと解説しました。数値から文字列への変換でも同様にvalueOfを使うことができます。

public class Main {
	public static void main(String[] args) {
 
		int num = 1;
 
		String str = String.valueOf(num);
		System.out.println(str);
	}
}
実行結果：

1
このサンプルコードではint型の変数をString.valueOfメソッドを使って文字列に変換しています。

toStringを使う方法
IntegerクラスやFloatクラスといったクラスにはtoStringメソッドが備わっておりこのメソッドを使うことで文字列に変換することが可能です。

public class Main {
 
    public static void main(String[] args) {
        System.out.println(Integer.toString(1));
        System.out.println(Byte.toString((byte)1));
        System.out.println(Short.toString((short)1));
        System.out.println(Long.toString(1l));
        System.out.println(Float.toString(1.0f));
        System.out.println(Double.toString(1.0));
    }
 
}
実行結果：

1
1
1
1
1.0
1.0
このサンプルコードのような形でtoStringメソッドを呼ぶと文字列へ変換して返してくれます。

String型の値が数値かチェックする
もし、型変換ができなかった場合どうなるかサンプルコードを見てみましょう。

public class Main {
 
    public static void main(String[] args) {
        System.out.println(Integer.parseInt("aa"));
        System.out.println(Integer.valueOf("aa"));
    }
 
}
このサンプルコードを実行しようとすると例外やコンパイルエラーが発生して実行できなくなります。引数に渡す際には正しい数値でなければなりません。ですので、型変換を行う前にString型の値が数値かチェックするようにしましょう。

String型の値が数値かチェックする方法は2つあります。
try-catch文で例外処理
正規表現でチェック

それぞれの方法について詳しく確認していきましょう。
なお、Apache Commons LangのNumberUtils#isNumberメソッドを使う方法もありますが、標準ライブラリではないため説明は割愛します。

try-catch文で例外処理
try-catch文でStringの値が数値でなければ、例外処理を行うように記述します。

public class Main {
 
    public static void main(String[] args) {
        try {
            System.out.println(Integer.parseInt("-10"));
            System.out.println(Integer.valueOf("aa"));
        } catch (NumberFormatException e) {
            System.out.println(e);
        }
    }
 
}
実行結果：

-10
java.lang.NumberFormatException: For input string: "aa"
このサンプルコードでは、Integer.parseIntメソッドの引数の文字列は数値ですが、Integer.valueOfメソッドの引数の文字列は数値ではありません。

引数の文字列が数値でない場合は例外処理を行うようにtry-catch文で記述しています。

正規表現でチェック
正規表現のパターンを指定して、文字列が数値かどうかチェックする方法は以下のようになります。

import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class Main {
 
    public static void main(String[] args) {
        String str1 = "-10";
        String str2 = "aa";
        
        // 正規表現の設定
        String regex = "^-?[0-9]*$";
        Pattern p = Pattern.compile(regex);
        Matcher m1 = p.matcher(str1);
        Matcher m2 = p.matcher(str2);
        
        if(m1.find()) {
            System.out.println(Integer.parseInt(str1));
        }
        
        if(m2.find()) {
            System.out.println(Integer.valueOf(str2));
        } 
    }
 
}
実行結果：

-10
このサンプルコードでは、String型変数regexで正規表現のパターンをマイナス値も含む整数に指定しています。

整数の正規表現のパターンと合致する場合は、整数値に変換され出力表示されます。合致しない場合は出力表示されていません。

なお、正規表現で文字列をチェックするパターンの書き方については、こちらでくわしく説明していますので参考にしてくださいね。


【Javaで正規表現】文字列をチェックするパターンの書き方とサンプル
更新日 : 2019年4月23日
Stringの使い方の総まとめ記事はこちら
Stringのさまざまな使い方についてはこちらで詳しく解説しているので、ぜひ確認してください！


【Java String】7つの基本的な使い方で文字列操作を理解しよう
更新日 : 2019年5月7日
まとめ
今回は文字列をint型に変換する方法について解説してきましたが、いかがでしょうか？

String型から数値型への変換はparseInteger、paraseByte、parseFloatなどのメソッドやvalueOfメソッドを使いましょう。数値から文字列はvalueOfかtoStringを使いましょう。

忘れてしまった場合、ぜひこの記事を思い出して下さい！

LINEで送る

ITエンジニアへ転職したい方におすすめ
自分を評価してくれる企業に転職して年収を上げたい！ 自分のスキルにあった独自案件を知りたい！
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート
・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料！しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ！
侍ワークスの求人情報を見る
オータケ
オータケ
30歳、フリーランスプログラマ。中学の頃よりプログラミングに興味を持ちゲーム開発やWebサイト構築などを経験
新しいフレームワークやライブラリに興味があり革新的な機能が含まれていると泣いて喜ぶ。

すべての記事を見る
この記事のあとによく読まれています！

Java
【Java入門】switch-case文の使い方
2017/3/27

2017/6/7


Java
【Java入門】interfaceとimplementsの使い方を基礎の基礎から解説！
2017/4/19

2019/4/16


Java
【5分でJava入門】MapのcontainsKeyの使い方と速度まとめ
2017/3/7

2019/10/23


Java
JavaとJavaScriptって何が違うの？わかりやすく４つの違いで徹底分析
2017/9/2

2019/11/7


Java
【Java入門】String型の文字列をequalsで比較する方法
2017/3/13

2017/12/15


Java
【Java入門】Loggerの使い方(ログレベル、出力先の設定も解説)
2018/6/27

2019/5/2

カテゴリー
トップ
インタビュー
学習コラム
カリキュラム
チュートリアル
学習診断
無料学習相談
カリキュラム
プログラミング入門
Ruby 入門
Swift 入門
Java 入門
Python 入門
JavaScript 入門
運営会社
会社概要
代表挨拶
採用情報
お問い合わせ
プライバシーポリシー
侍エンジニア塾ブログロゴ
facebook twitter youtube
©Samurai, Inc. All Rights Reserved.