変換[Java]タイプ


タイプ変換


これは、データ型を他のデータ型に変換することを意味します.
種類は自動タイプ変換と強制タイプ変換があります.byteint intdouble doubleint Stringint

自動タイプ変換


値の許容範囲は、小さなタイプが大きなタイプに格納されている場合に発生します.
データは自動的に他のデータ型に変換されます.
큰 허용 범위 타입 = 작은 허용 범위 타입

既定のタイプの許容範囲

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演算子カッコ()を使用する必要があります.
작은 허용 범위 타입 = (작은 허용 범위 타입) 큰 허용 범위 타입
  • は、より大きな許容範囲タイプをより小さな許容範囲タイプ、
  • に分割することができる.
  • 分割された部分の1つは、より小さな許容範囲タイプで保存される.
  • の場合、残りの破片は破棄されます.
  • int(4 Byte)タイプをバイト(1 Byte)タイプに分割し、最後のバイトを保存します.
    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強