📌  相关文章
📜  Java中字符串到整数转换的不同方法(1)

📅  最后修改于: 2023-12-03 15:01:49.928000             🧑  作者: Mango

Java中字符串到整数转换的不同方法

在Java中,字符串到整数的转换有很多种不同的方法。本文将介绍其中几种常用的方法,并对它们进行比较。

方法一:使用Integer.parseInt()方法

这是一种很常见的字符串到整数的转换方法,它使用Java的内置函数Integer.parseInt()。

示例代码:

String str = "123";
int num = Integer.parseInt(str);

这将把字符串"123"转换为整数123。

方法二:使用Integer.valueOf()方法

和上一种方法类似,使用Java的内置函数Integer.valueOf()也可以将字符串转换为整数。

示例代码:

String str = "123";
int num = Integer.valueOf(str);
方法三:使用Scanner.nextInt()方法

Scanner.nextInt()也可以把一个字符串转换为整数。这个方法从标准输入读取一个整数,因此需要先创建一个Scanner对象。

示例代码:

Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
方法四:使用Integer.decode()方法

在Java中,还可以使用Integer.decode()方法将字符串转换为整数。它可以自动判断字符串的进制(如十进制、十六进制、八进制等)。

示例代码:

String str = "0x123";
int num = Integer.decode(str);
方法五:使用正则表达式

使用正则表达式也可以把字符串转换为整数。

示例代码:

String str = "123";
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
    int num = Integer.parseInt(matcher.group());
}
方法六:使用StringTokenizer

最后一种方法是使用StringTokenizer类来将字符串分割成数字。

示例代码:

String str = "1 2 3";
StringTokenizer tokenizer = new StringTokenizer(str, " ");
int[] nums = new int[tokenizer.countTokens()];
int i = 0;
while (tokenizer.hasMoreTokens()) {
    nums[i++] = Integer.parseInt(tokenizer.nextToken());
}
比较

这些方法各有优缺点。Integer.parseInt()和Integer.valueOf()是最常用的方法,它们对于错误输入没有很好的容错能力。Scanner.nextInt()可以容错,但是它需要从标准输入读取,因此不能直接处理字符串。Integer.decode()是一种很智能的方法,可以自动识别不同进制的数字,但是字符串的格式必须是Java所支持的。

正则表达式和StringTokenizer要比这些方法稍微复杂一些,但是它们提供了更多的控制能力和容错能力。

综上所述,开发者在实际使用中可以根据具体的业务需求、输入数据的特点以及对性能、代码复杂度等方面的考虑,选择适合自己的字符串到整数转换方法。