Java实现从字符串中找出数字字符串的方法小结
有时候我们需要从一个字符串中提取数字串,可以使用Java中的正则表达式来实现。
正则表达式
正则表达式是一种用来描述字符串模式的语言。可以用来匹配、查找等操作。
匹配数字
用正则表达式来匹配数字的方式有以下几种:
- \d:表示匹配任意数字字符(0-9)的字符
- [0-9]:表示匹配0-9中的任意一个数字字符
Java实现
使用Java中的正则表达式,我们可以使用Pattern和Matcher类来匹配数字串,具体实现如下:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
// 使用正则表达式匹配数字串
String s = "Hello 23 World 45 Java";
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(s);
// 输出匹配到的数字串
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
输出结果:
23
45
以上代码中,使用了Pattern.compile()方法将正则表达式"\d+"编译成一个模式,再用Matcher类的find()方法扫描所要应用正则表达式的内容,并进行匹配。
示例
示例1
假设我们要从一个字符串中提取出连续的数字串,并将其转换为int类型,代码如下:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
// 使用正则表达式提取数字串
String s = "Hello 23 World 45 Java";
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(s);
// 遍历匹配到的数字串
while (matcher.find()) {
// 将数字串转换为int类型
int num = Integer.parseInt(matcher.group());
System.out.println(num);
}
}
}
输出结果:
23
45
以上代码中,在遍历匹配到的数字串时,利用Integer.parseInt()方法将字符串类型的数字转换为int类型。
示例2
再假设有一个字符串中包含多个数字串,我们只要其中某个位置上的数字串,代码如下:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
// 使用正则表达式提取某个位置上的数字串
String s = "Hello 23 World 45 Java";
int position = 2; // 提取第2个数字串
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(s);
// 遍历匹配到的数字串
int count = 0;
while (matcher.find()) {
count++;
if(count == position) {
// 找到所需数字串
int num = Integer.parseInt(matcher.group());
System.out.println(num);
break;
}
}
}
}
输出结果:
45
以上代码中,在遍历匹配到的数字串时,设立计数器count,当计数器的值等于所需数字串的位置时,利用Integer.parseInt()方法将字符串类型的数字转换为int类型。同时要注意,Java中计数器是从1开始的。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现从字符串中找出数字字符串的方法小结 - Python技术站