パースとvalueOf
文字列を数値に変換します
「パースとvalueOf」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全4レッスンが含まれています。
テキストを数値に変換する
ユーザー入力やファイルの内容は、String型のテキストとして受け取ります。計算を行うには、それらの文字列を数値に変換する必要があります。
ラッパークラスには、そのために2種類のメソッド群があります。parseXxxはプリミティブ型を返し、valueOfはラッパーオブジェクトを返します。
parseIntはプリミティブ型を返します
Integer.parseIntは文字列を受け取り、通常のintを返します。これは最も一般的な解析メソッドです。
public class Main {
public static void main(String[] args) {
int n = Integer.parseInt("123");
System.out.println(n + 1);
}
}valueOfはラッパーを返します
Integer.valueOfは文字列を受け取り、プリミティブ型ではなくIntegerオブジェクトを返します。コレクションに格納する場合など、ラッパーが直接必要なときに便利です。
public class Main {
public static void main(String[] args) {
Integer boxed = Integer.valueOf("456");
System.out.println(boxed);
}
}小数の解析
浮動小数点数を表すテキストにはDouble.parseDoubleを使用します。小数点を含む値だけでなく、科学的記法にも対応しています。
public class Main {
public static void main(String[] args) {
double price = Double.parseDouble("19.99");
System.out.println(price * 2);
}
}その他の型の解析
すべての数値ラッパーにはparseメソッドがあります。Long.parseLong、Double.parseDouble、Float.parseFloat、Short.parseShort、Byte.parseByteなどです。
public class Main {
public static void main(String[] args) {
long big = Long.parseLong("9000000000");
System.out.println(big);
}
}booleanの解析
Boolean.parseBooleanは、大文字と小文字を区別せずにテキストが「true」と一致する場合にのみtrueを返します。nullを含め、それ以外のすべての文字列ではfalseを返します。
public class Main {
public static void main(String[] args) {
System.out.println(Boolean.parseBoolean("true"));
System.out.println(Boolean.parseBoolean("TRUE"));
System.out.println(Boolean.parseBoolean("yes"));
}
}異なる基数での解析
Integer.parseIntは、radix引数を省略可能な形で受け取ります。2を渡すと2進数として、16を渡すと16進数として読み取ります。
public class Main {
public static void main(String[] args) {
int binary = Integer.parseInt("1010", 2);
int hex = Integer.parseInt("ff", 16);
System.out.println(binary);
System.out.println(hex);
}
}不正な入力では例外が発生します
文字列が有効な数値でない場合、解析によってNumberFormatExceptionがスローされます。リスクのある解析処理はtry-catchブロックで囲んでください。
public class Main {
public static void main(String[] args) {
try {
int n = Integer.parseInt("hello");
System.out.println(n);
} catch (NumberFormatException e) {
System.out.println("Not a number!");
}
}
}空白に注意してください
解析では、前後にある空白は許容されません。Integer.parseInt(" 5 ")は例外をスローします。
ユーザー入力には、必ず先にtrim()またはstrip()を呼び出してください。
public class Main {
public static void main(String[] args) {
String raw = " 42 ";
int n = Integer.parseInt(raw.trim());
System.out.println(n);
}
}数値をテキストに戻す
逆方向に変換するには、String.valueOfまたはInteger.toStringを使用します。どちらも数値をテキスト形式に変換します。
public class Main {
public static void main(String[] args) {
String text = Integer.toString(789);
String text2 = String.valueOf(3.14);
System.out.println(text.length());
System.out.println(text2);
}
}parseXxxとvalueOfの違い
次のルールを覚えておきましょう。parseIntはプリミティブ型のintを返し、valueOfはIntegerオブジェクトを返します。プリミティブ型が必要かラッパーが必要かに応じて選択してください。
簡単な確認
解析について学んだことを確認しましょう。
まとめ
文字列と数値を相互に変換する方法について学びました。
parseInt、parseDoubleなどはプリミティブ型を返しますvalueOfはラッパーオブジェクトを返します- 不正な入力では
NumberFormatExceptionがスローされるため、trimして例外を捕捉します parseIntはradix引数によって、他の基数も読み取れます- テキストに戻すには
toStringまたはString.valueOfを使用します
よくある質問
「パースとvalueOf」レッスンは無料ですか?
はい。「パースとvalueOf」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全4レッスンが含まれています。
「パースとvalueOf」で何を学びますか?
文字列を数値に変換します ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Java Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「パースとvalueOf」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJava Academyレッスンでコードを書いて実行できますか?
はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- プリミティブ型とラッパー型
- オートボクシングとアンボクシング
- パースとvalueOf
- オートボクシングの落とし穴