Java String 转 Number

在Java中,可以通过一些方法将字符串转换为数字。这在处理用户输入、读取文件或从网络接收数据时特别有用。本文将介绍一些常用的方法,并提供相应的示例代码。

1. 使用parseInt()方法

parseInt()是Java中的一个静态方法,可以将字符串解析为整数。该方法接受一个表示整数的字符串作为参数,并返回解析后的整数值。

String str = "123";
int num = Integer.parseInt(str);
System.out.println(num); // 输出: 123

需要注意的是,如果字符串不能被解析为整数,parseInt()方法将抛出NumberFormatException异常。为了避免这种情况,可以使用try-catch块来捕获异常。

String str = "abc";
try {
    int num = Integer.parseInt(str);
    System.out.println(num);
} catch (NumberFormatException e) {
    System.out.println("无法解析字符串为整数");
}

2. 使用valueOf()方法

valueOf()方法是一个包装类的方法,可以将字符串转换为包装类的对象。根据需要,可以选择将字符串转换为IntegerFloatDouble等类型。

String str = "3.14";
double num = Double.valueOf(str);
System.out.println(num); // 输出: 3.14

parseInt()方法类似,如果字符串不能被解析为相应的数字类型,valueOf()方法将抛出NumberFormatException异常。

String str = "abc";
try {
    int num = Integer.valueOf(str);
    System.out.println(num);
} catch (NumberFormatException e) {
    System.out.println("无法解析字符串为整数");
}

3. 使用parse*()方法

Java还提供了一些其他的parse*()方法,用于将字符串转换为其他基本类型。例如,Byte.parseByte()将字符串转换为字节,Long.parseLong()将字符串转换为长整型。

String str = "10";
byte b = Byte.parseByte(str);
long l = Long.parseLong(str);
System.out.println(b); // 输出: 10
System.out.println(l); // 输出: 10

这些方法也会抛出NumberFormatException异常,因此需要进行异常处理。

4. 使用Scanner类

Java中的Scanner类可以用来读取用户输入。当用户输入一个数字时,可以使用nextInt()nextFloat()等方法将其转换为相应的类型。

import java.util.Scanner;

Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数: ");
int num = scanner.nextInt();
System.out.println("输入的整数是: " + num);

类似地,nextFloat()nextDouble()等方法可以将用户输入的字符串转换为浮点数类型。

5. 使用正则表达式

如果需要更灵活地处理字符串,可以使用正则表达式来匹配和提取数字。通过使用PatternMatcher类,可以从字符串中找到所有匹配的数字,并进行转换。

下面的示例代码将从字符串中提取所有的数字,并将其转换为整数类型。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

String str = "I have 3 apples and 5 oranges.";
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
    int num = Integer.parseInt(matcher.group());
    System.out.println(num);
}

以上是将Java字符串转换为数字的一些常见方法。根据不同的需求和场景,可以选择适合的方法进行转换。无论是基本类型还是包装类,Java都提供了方便的方法来处理字符串和数字之间的转换。