Java Long 无符号字符串转换

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习 Java 的 toUnsignedString() 方法,该方法用于将 long 值转换为无符号十进制字符串对象。你将学习如何使用该方法、它接受的参数以及它的返回值。

初始化 long 值

首先,我们将创建一个 long 值并用一些数据初始化它。我们将在后续示例中使用该值,通过 toUnsignedString() 方法将其转换为无符号十进制字符串。

long longValue = 3000000000L;

将 long 转换为无符号十进制字符串

现在,我们将使用 toUnsignedString() 方法将初始化的 long 值转换为无符号十进制字符串。

String unsignedString = Long.toUnsignedString(longValue);

打印结果

最后,我们将在控制台中打印转换后的无符号十进制字符串的结果。

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 数据类型也可以存储负值。在这一步中,我们将看到当尝试将负值转换为无符号十进制字符串时会发生什么。

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

打印负 long 值的结果

现在我们已经得到了无符号十进制字符串值,我们将尝试使用 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() 方法将其转换为无符号十进制字符串。

为此,我们将创建一个 scanner 对象以从控制台读取输入,然后将扫描到的值存储在一个 long 变量中。

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

之后,我们将使用 toUnsignedString() 方法将用户自定义的 long 值转换为无符号十进制字符串。

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);
    }
}

当你运行代码时,控制台会提示你输入一个数字。输入值后,程序会将其转换为无符号十进制字符串并打印到控制台。

无效输入处理

在这一步中,我们将修改上一步的代码以处理无效的用户输入。

首先,我们将第 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 块中包含与第 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 值,程序会将其转换为无符号十进制字符串并打印到控制台。

总结

在本实验中,你学习了 Java 的 toUnsignedString() 方法,该方法用于将 long 数据类型转换为无符号十进制字符串。你还通过示例学习了如何使用此方法、它接受的参数以及它的返回值。

你学习了如何处理用户自定义 long 值的无效输入,以及如何处理负 long 值并将其以无符号十进制字符串的形式打印到控制台。