解析与 Valueof
将字符串转换为数字
解析与 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 反馈 — 无需本地设置。