変換[Java]タイプ
タイプ変換
これは、データ型を他のデータ型に変換することを意味します.
種類は自動タイプ変換と強制タイプ変換があります.
byte
→ int
int
→ double
double
→ int
String
→ int
自動タイプ変換
値の許容範囲は、小さなタイプが大きなタイプに格納されている場合に発生します.
データは自動的に他のデータ型に変換されます.
큰 허용 범위 타입 = 작은 허용 범위 타입
既定のタイプの許容範囲
byte < short < char < int < long < float < double
変数の値を別のタイプの変数に格納すると、自動タイプ変換が発生します.ただし、格納する変数タイプには、より広い範囲が必要です.
byte byteValue = 10;
int intValue = byteValue; // byte < int
char charValue = 'A';
int intValue = charValue; // char < int
// 65 (유니코드 값이 저장된다.)
タイプを変換できません
charタイプに負の値はありません.
負数タイプを文字タイプに変換しようとすると、コンパイルエラーが発生します.
byte byteValue = 65;
char charValue = byteValue; // 컴파일 에러
せいすうえんざん
演算により、intタイプ範囲未満のxおよびyの値がintタイプに変換されます.
この場合、intタイプはbyteタイプとして格納できないため、コンパイルエラーが発生します.
byte x = 10;
byte y = 20;
byte result = x + y; // 컴파일 에러
int result = x + y;
被演算子の1つがより広い範囲を持つ場合は、広い範囲タイプに変換されます.この場合、longタイプはintタイプとして保存できないため、コンパイルエラーが発生します.
byte x = 30;
long y = 40;
int result = x + y; // 컴파일 에러
long result = x + y;
byte value1 = 10;
int value2 = 100;
long value3 = 1000L;
byte result = value1 + value2 + value3; // 컴파일 에러
int result = value1 + value2 + value3; // 컴파일 에러
long result = value1 + value2 + value3; // 1110
charタイプは文字を格納できます.正確にはUnicodeの値を持つので、整数と演算を実行できます.
このとき、演算結果を強制的に文字タイプに変換すると、Unicode値が文字に出力されます.
char charValue1 = 'A';
char charValue2 = 1;
int intValue1 = charValue1 + charValue2; // 66
char charValue3 = (char) intValue1; // B
実数演算
同様に、被演算子の1つがより広い範囲を持つ場合、より広い範囲のタイプに変換されます.
int intValue = 7;
double doubleValue = 7.7;
double result = intValue + doubleValue; // 14.7
他のタイプを使用して演算するには、強制的にタイプを変換し、演算を実行する必要があります.小数点以下の数字は丸められますので、丸められません.
int intValue = 7;
double doubleValue = 7.7;
int result = intValue + (int) doubleValue; // 14
実数演算
コンパイラのデフォルトでは、実数値は2つのタイプとみなされます.
floatタイプの変数は、文字の後ろにfまたはFを書くべきです.
double result = 1.5 + 2.3;
float result = 1.5 + 2.3; // 컴파일 에러
float result = 1.5f + 2.3f;
! 誤って整数演算結果を保存した場合
整数の算術演算の結果は整数です.
数式では、1を2で割ると0.5になり、Javaでは0になります.
したがって、実数タイプで値を格納しても0.0の値が得られます.
int x = 1;
int y = 2;
double result = x / y; // 0.0
一般的な数式のように計算された値を得るには、演算前にタイプ変換を行う必要があります.変換後の実数タイプ(double)と演算すると、整数は実数に変換されます.
// 방법 1
int x = 1;
int y = 2;
double result = (double) x / y; // (1.0 / 2.0 = 0.5)
// 방법 2
int x = 1;
int y = 2;
double result = x / (double) y;
// 방법 2
int x = 1;
int y = 2;
double result = (double) x / (double) y;
変数#ヘンスウ#
Javaはコンパイル時にいくつかの演算を実行します.
異種
テキストの場合、Javaコンパイラは演算を実行します.
タイプはまだ決定されていないため、コンパイルは宣言されたタイプに基づいて演算を実行し、変数に格納します.
コンパイル変数のタイプに基づいて演算を実行します.
byte result = 10 + 20;
へんすう変数に格納されたテキストを演算すると、Javaコンパイラは演算を実行しません.
コンパイルではなく、コンパイル結果を実行するJVM上で演算を実行します.
タイプがintタイプより小さい場合はintタイプに変換します.
JVMをintタイプに変換します.
byte x = 10;
byte y = 20;
int result = x + y;
+演算
1つの被演算子が文字列である場合、残りの被演算子も自動的に文字列に変換されます.
文字列を+演算すると、他の演算子も文字列に変換され、文字列のマージが生成されます.(文字列連結演算)
int intValue = 3 + 4; // 7
String str = 3 + "4"; // 34
String str = "3" + 4; // 34
+前から順に演算を実行マージ演算を先に実行すると、以降のすべての演算がマージ演算になります.
かっこがある場合は、カッコ内の演算が最初に実行されます.
String str = 1 + 2 + "3";
// 3(1+2) + "3"
// "33"
String str = 1 + "2" + 3;
// "12" + 3
// "123"
String str = "10" + (2 + 8);
// 10(2 + 8) + "10"
// "1010"
強制型変換(Casting)
大許容範囲タイプを小許容範囲タイプに変換します.
自動変換されないため、変換タイプを強制する必要があります.
casting演算子カッコ()を使用する必要があります.
작은 허용 범위 타입 = (작은 허용 범위 타입) 큰 허용 범위 타입
int intValue = 10;
byte byteValue = (byte) intValue; // 강제 타입 변환
// 10
intタイプ→charタイプ
intタイプはより広い範囲にあるので、タイプを強制的に変換する必要があります.
強制的にcharタイプに変換すると、整数値はUnicode値として格納されます.
int intValue = 65;
char charValue = (char) intValue;
System.out.println(charValue); // A
実数タイプ→整数タイプ
エラー・タイプはより広い範囲にあるため、強制的にタイプを変換する必要があります.
小数点以下の部分は破棄され、整数部分のみが格納されます.
double doubleValue = 3.14;
int intValue = (int) doubleValue; // 3
文字列→基本タイプ
Stringタイプを基本タイプに変換するには、強制的にタイプを変換する必要があります.
この場合、casting()演算子ではなくJavaが提供するAPIクラスが使用されます.
APIクラスが持つメソッドに変換するオブジェクトを書き込めばよい.
変換タイプ
APIクラス
使用例
String → byte
Byte.parseByte()
String str = "10";byte value = Byte.parseByte(str);
String → short
Short.parseShort()
String str = "10";short value = Short.parseShort(str);
String → int
Integer.parseInt()
String str = "10";int value = Integer.parseInt(str);
String → long
Long.parseLong()
String str = "10";long value = Long.parseLong(str);
String → float
Float.parseFloat()
String str = "3.14";float value = Float.parseFloat(str);
String → double
Double.parseDouble()
String str = "3.14";double value = Double.parseDouble(str);
String → boolean
Boolean.parseBoolean()
String str = "true";boolean value = Boolean.parseBoolean(str);
! 文字列→数値列
文字列に数値以外の要素が含まれている場合は、タイプを変換します.
数値フォーマット例外
NumberFormatException
.str = "7test";
int value = Integer.parseInt(str); // NumberFormatException 예외
デフォルトタイプ→文字列
基本タイプを文字列に変換するには、2つの方法があります.
空の文字列をマージ(")
文字列と数値を演算すると、連結演算が生成されます.
入力されていない空の文字列と数値を加算すると、数値は文字列に変換されます.
int value = 7;
String str = "" + 7; // "7"
String.valueOf()メソッドの使用String.valueOf()
メソッドを使用して、基本タイプを文字列に変換できます.int value = 7;
String str = String.valueOf(value); // "7"
孔子の講義をもとに書かれています.🙏ベスト10 11強 12強
Reference
この問題について(変換[Java]タイプ), 我々は、より多くの情報をここで見つけました https://velog.io/@soheeoott/Java-타입-변환テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol