Java の long 型を符号なし文字列に変換する

JavaBeginner
オンラインで実践に進む

はじめに

この実験では、Java のtoUnsignedString()メソッドについて学びます。このメソッドは、long 型の値を符号なしの 10 進数の String オブジェクトに変換するために使用されます。このメソッドの使い方、引数として何を取り、何を返すかを学びます。

long 型の値の初期化

まず、long 型の値を作成して、いくつかのデータで初期化します。この値を後の例で使用して、toUnsignedString()メソッドを使って符号なしの 10 進数の文字列に変換します。

long longValue = 3000000000L;

long 型を符号なし 10 進数文字列に変換する

次に、toUnsignedString()メソッドを使って、初期化した long 型の値を符号なしの 10 進数の文字列に変換します。

String unsignedString = Long.toUnsignedString(longValue);

結果の表示

最後に、変換した符号なしの 10 進数の文字列の結果をコンソールに表示します。

System.out.println("Unsigned String value: " + unsignedString);

上記の手順の完全なコードは次のとおりです。

public class LongToUnsignedString {
    public static void main(String[] args) {
        long longValue = 3000000000L;
        String unsignedString = Long.toUnsignedString(longValue);
        System.out.println("Unsigned String value: " + unsignedString);
    }
}

コードを実行すると、次の出力が表示されます。

Unsigned String value: 3000000000

負の long 型の値の処理

Java では、long 型のデータ型は負の値も格納できます。このステップでは、負の値を符号なしの 10 進数の文字列に変換しようとしたときに何が起こるか見てみましょう。

long longNegative = -123456789L;
String unsignedString = Long.toUnsignedString(longNegative);

負の long 型の値の結果の表示

符号なしの 10 進数の文字列の値が得られたので、System.out.println()メソッドを使ってコンソールに表示しようとします。

System.out.println("Unsigned Decimal String value: " + unsignedString);

完全なコードは次のとおりです。

public class LongToUnsignedString {
    public static void main(String[] args) {
        long longNegative = -123456789L;
        String unsignedString = Long.toUnsignedString(longNegative);
        System.out.println("Unsigned Decimal String value: " + unsignedString);
    }
}

出力は次のようになります。

Unsigned Decimal String value: 18446743950276013727

ユーザ定義の long 型の値の変換

このステップでは、ユーザ定義の long 型の値を作成し、toUnsignedString()メソッドを使って符号なしの 10 進数の文字列に変換します。

そのために、コンソールから読み取るための Scanner オブジェクトを作成し、次にスキャンした値を long 型の変数に格納します。

Scanner scanner = new Scanner(System.in);
System.out.print("Enter a number: ");
long userLong = scanner.nextLong();

その後、toUnsignedString()メソッドを使ってユーザ定義の long 型の値を符号なしの 10 進数の文字列に変換します。

String unsignedString = Long.toUnsignedString(userLong);

最後に、変換された値をコンソールに表示します。

System.out.println("Unsigned String value: " + unsignedString);

完全なコードは次のとおりです。

import java.util.Scanner;

public class LongToUnsignedString {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a number: ");
        long userLong = scanner.nextLong();
        String unsignedString = Long.toUnsignedString(userLong);
        System.out.println("Unsigned String value: " + unsignedString);
    }
}

コードを実行すると、コンソールに数値の入力を促されます。値を入力すると、プログラムはそれを符号なしの 10 進数の文字列の値に変換し、コンソールに表示します。

無効な入力の処理

このステップでは、前のステップのコードを修正して、無効なユーザ入力を処理します。

まず、ステップ 6 のコードを try-catch ブロックに囲み、無効なユーザ入力によって発生する可能性のある例外を処理します。

try {
    Scanner scanner = new Scanner(System.in);
    System.out.print("Enter a number: ");
    long userLong = scanner.nextLong();
    String unsignedString = Long.toUnsignedString(userLong);
    System.out.println("Unsigned String value: " + unsignedString);
} catch (InputMismatchException exception) {
    System.out.println("Invalid input: Please enter a valid long value.");
}

try ブロックには、ユーザ入力を読み取り、それを符号なしの 10 進数の文字列に変換し、コンソールに表示するためのステップ 6 と同じコードが含まれています。

catch ブロックは、無効なユーザ入力によって発生する可能性のあるInputMismatchExceptionをキャッチし、入力が有効な long 型の値でなかったことを示すエラーメッセージをコンソールに表示します。

完全なコードは次のとおりです。

import java.util.InputMismatchException;
import java.util.Scanner;

public class LongToUnsignedString {
    public static void main(String[] args) {
        try {
            Scanner scanner = new Scanner(System.in);
            System.out.print("Enter a number: ");
            long userLong = scanner.nextLong();
            String unsignedString = Long.toUnsignedString(userLong);
            System.out.println("Unsigned String value: " + unsignedString);
        } catch (InputMismatchException exception) {
            System.out.println("Invalid input: Please enter a valid long value.");
        }
    }
}

コードを実行して無効な入力を入力すると、プログラムはコンソールにエラーメッセージを表示します。有効な long 型の値を入力すると、プログラムはそれを符号なしの 10 進数の文字列の値に変換し、コンソールに表示します。

まとめ

この実験では、long 型のデータ型を符号なしの 10 進数の文字列に変換するために使用される Java のtoUnsignedString()メソッドについて学びました。また、このメソッドをどのように使用するか、引数として何を取り、何を返すかを例を使って学びました。

ユーザ定義の long 型の値に対する無効な入力をどのように処理するか、および負の long 型の値をどのように処理して、それらを符号なしの 10 進数の文字列の表現でコンソールに表示するかを学びました。