Java Academy · 课时

解析与 Valueof

将字符串转换为数字

第 3 / 4 课13 个步骤

解析与 Valueof 是 CoddyKit 上的免费 Java Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Java Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Java Academy 课程共包含 4 节课。

文本转换为数字

用户输入和文件会以 String 文本的形式到达。要进行数学运算,您必须将这些字符串转换为数字。

包装类为此提供了两组方法:parseXxx 返回基本类型,而 valueOf 返回包装对象。

parseInt 返回基本类型

Integer.parseInt 接收字符串并返回普通的 int。这是最常用的解析方法。

public class Main {
    public static void main(String[] args) {
        int n = Integer.parseInt("123");
        System.out.println(n + 1);
    }
}

valueOf 返回包装类型

Integer.valueOf 接收字符串并返回 Integer 对象,而不是基本类型。当您需要直接获得包装类型时,例如要将其放入集合,这个方法很方便。

public class Main {
    public static void main(String[] args) {
        Integer boxed = Integer.valueOf("456");
        System.out.println(boxed);
    }
}

解析小数

对于浮点文本,请使用 Double.parseDouble。它可以处理带小数点的值,甚至可以处理科学计数法。

public class Main {
    public static void main(String[] args) {
        double price = Double.parseDouble("19.99");
        System.out.println(price * 2);
    }
}

解析其他类型

每个数值包装类都有一个解析方法:Long.parseLong、Double.parseDouble、Float.parseFloat、Short.parseShort 和 Byte.parseByte。

public class Main {
    public static void main(String[] args) {
        long big = Long.parseLong("9000000000");
        System.out.println(big);
    }
}

解析布尔值

Boolean.parseBoolean 仅当文本在忽略大小写后等于 "true" 时才返回真。其他所有字符串(包括 null)都会返回假。

public class Main {
    public static void main(String[] args) {
        System.out.println(Boolean.parseBoolean("true"));
        System.out.println(Boolean.parseBoolean("TRUE"));
        System.out.println(Boolean.parseBoolean("yes"));
    }
}

按不同进制解析

Integer.parseInt 接受可选的基数参数。传入 2 会读取二进制数,传入 16 会读取十六进制数。

public class Main {
    public static void main(String[] args) {
        int binary = Integer.parseInt("1010", 2);
        int hex = Integer.parseInt("ff", 16);
        System.out.println(binary);
        System.out.println(hex);
    }
}

输入错误会抛出异常

如果字符串不是有效数字,解析就会抛出 NumberFormatException。您应当将有风险的解析操作放在 try-catch 代码块中。

public class Main {
    public static void main(String[] args) {
        try {
            int n = Integer.parseInt("hello");
            System.out.println(n);
        } catch (NumberFormatException e) {
            System.out.println("Not a number!");
        }
    }
}

注意空白字符

解析无法容忍周围的空格。Integer.parseInt(" 5 ") 会抛出异常。

请始终先对用户输入调用 trim() 或 strip()。

public class Main {
    public static void main(String[] args) {
        String raw = "  42  ";
        int n = Integer.parseInt(raw.trim());
        System.out.println(n);
    }
}

将数字转换回文本

要进行反向转换,请使用 String.valueOf 或 Integer.toString。两者都会将数字转换为文本形式。

public class Main {
    public static void main(String[] args) {
        String text = Integer.toString(789);
        String text2 = String.valueOf(3.14);
        System.out.println(text.length());
        System.out.println(text2);
    }
}

parseXxx 与 valueOf 的区别

请记住这条规则:parseInt 返回基本类型 int,而 valueOf 返回 Integer 对象。请根据需要的是基本类型还是包装类型来进行选择。

快速检查

测试您对解析的理解。

回顾

您已经了解了如何在字符串和数字之间进行转换:

  • parseInt、parseDouble 及其他类似方法返回基本类型
  • valueOf 返回包装对象
  • 错误输入会抛出 NumberFormatException,因此应先去除空白并捕获异常
  • parseInt 可以通过基数参数读取其他进制的数字
  • 使用 toString 或 String.valueOf 可以将数字转换回文本
免费开始

用 AI 导师学习 Java — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
104
课程
374

常见问题解答

「解析与 Valueof」课时是免费的吗?

是的 — 「解析与 Valueof」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Java Academy 课程的其余内容,请升级到 CoddyKit PRO。 Java Academy 课程共包含 4 节课。

「解析与 Valueof」这节课中我会学到什么?

将字符串转换为数字 你通过在浏览器中直接运行的动手代码来练习 Java Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Java Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Java Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「解析与 Valueof」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Java Academy 课中编写并运行代码吗?

能。每节 Java Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 基本类型与包装类型
  2. 自动装箱与拆箱
  3. 解析与 Valueof
  4. 自动装箱陷阱
← 返回 Java Academy