Java Long parseLong 方法

JavaJavaBeginner
立即练习

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

介绍

parseLong(String s) 方法是 Java 中 Long 类的一个静态方法。它用于将字符串值转换为有符号的十进制长整型值。在这个实验中,你将学习如何使用该方法将字符串值转换为长整型值。

创建 LongParseLong 类

创建一个名为 LongParseLong 的类。

public class LongParseLong {

}

声明 main 方法

LongParseLong 类中声明 main 方法。

public class LongParseLong {
    public static void main(String[] args) {

    }
}

将字符串转换为 long 类型

main 方法中,使用 parseLong 方法将字符串值转换为 long 类型值。

public class LongParseLong {
    public static void main(String[] args) {
        String str = "123";
        long num = Long.parseLong(str);
        System.out.println("The string value " + str + " is converted to the long value " + num);
    }
}

在上述代码中,parseLong 方法用于将字符串 "123" 转换为 long 类型值 123。变量 num 存储转换后的 long 值,随后将其打印到控制台。

处理无效输入

使用 try-catch 块处理无效输入。

public class LongParseLong {
    public static void main(String[] args) {
        String str = "abc";
        try {
            long num = Long.parseLong(str);
            System.out.println("The string value " + str + " is converted to the long value " + num);
        } catch (NumberFormatException e) {
            System.out.println("Invalid input: " + str + " cannot be converted to a long");
        }
    }
}

在上述代码中,字符串 "abc" 不是 parseLong 方法的有效输入,因为它无法转换为 long 类型值。因此,会抛出 NumberFormatException 异常。该异常被 catch 块捕获,并在控制台打印错误信息。

将负数字符串转换为 long 类型

使用 parseLong 方法将负数字符串值转换为 long 类型值。

public class LongParseLong {
    public static void main(String[] args) {
        String str = "-123";
        try {
            long num = Long.parseLong(str);
            System.out.println("The string value " + str + " is converted to the long value " + num);
        } catch (NumberFormatException e) {
            System.out.println("Invalid input: " + str + " cannot be converted to a long");
        }
    }
}

在上述代码中,字符串 "-123" 是一个负数值,可以通过 parseLong 方法转换为 long 类型值。转换后的 long 值 -123 被打印到控制台。

使用 Scanner 获取用户输入

使用 Scanner 对象获取用户输入并将其转换为 long 类型值。

import java.util.Scanner;

public class LongParseLong {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a string to convert to a long: ");
        String str = scanner.nextLine();
        try {
            long num = Long.parseLong(str);
            System.out.println("The string value " + str + " is converted to the long value " + num);
        } catch (NumberFormatException e) {
            System.out.println("Invalid input: " + str + " cannot be converted to a long");
        }
    }
}

在上述代码中,创建了一个 Scanner 对象,使用 nextLine 方法从控制台获取用户输入。输入的字符串随后传递给 parseLong 方法,将其转换为 long 类型值,并打印到控制台。

将十六进制字符串转换为 long 类型

使用 parseLong 方法将十六进制字符串值转换为 long 类型值。

public class LongParseLong {
    public static void main(String[] args) {
        String str = "0x7fffffff";
        try {
            long num = Long.parseLong(str, 16);
            System.out.println("The hexadecimal string value " + str + " is converted to the long value " + num);
        } catch (NumberFormatException e) {
            System.out.println("Invalid input: " + str + " cannot be converted to a long");
        }
    }
}

在上述代码中,parseLong 方法用于将十六进制字符串 "0x7fffffff" 转换为 long 类型值。parseLong 方法的第二个参数指定了基数(radix),对于十六进制值为 16。转换后的 long 值 2147483647 被打印到控制台。

将二进制字符串转换为 long 类型

使用 parseLong 方法将二进制字符串值转换为 long 类型值。

public class LongParseLong {
    public static void main(String[] args) {
        String str = "1111111111111111111111111111111";
        try {
            long num = Long.parseLong(str, 2);
            System.out.println("The binary string value " + str + " is converted to the long value " + num);
        } catch (NumberFormatException e) {
            System.out.println("Invalid input: " + str + " cannot be converted to a long");
        }
    }
}

在上述代码中,parseLong 方法用于将二进制字符串 "1111111111111111111111111111111" 转换为 long 类型值。parseLong 方法的第二个参数指定了基数(radix),对于二进制值为 2。转换后的 long 值 4294967295 被打印到控制台。

将带有类型指示符的字符串转换为 long 类型

使用 parseLong 方法将带有类型指示符的字符串转换为 long 类型值。

public class LongParseLong {
    public static void main(String[] args) {
        String str = "123L";
        try {
            long num = Long.parseLong(str);
            System.out.println("The string value " + str + " is converted to the long value " + num);
        } catch (NumberFormatException e) {
            System.out.println("Invalid input: " + str + " cannot be converted to a long");
        }
    }
}

在上述代码中,字符串 "123L" 包含一个 long 类型的指示符。然而,parseLong 方法仅接受带符号的十进制值,当遇到类型指示符时会抛出 NumberFormatException。因此,catch 块被执行,并将错误信息打印到控制台。

总结

恭喜!你已经完成了 Java Long parseLong (String S) 方法的实验。你可以在 LabEx 中练习更多实验来提升你的技能。