📅  最后修改于: 2023-12-03 15:08:55.439000             🧑  作者: Mango
在Java编程中,经常需要获取数字在字符串中的位置。本文将介绍如何在Java中获取数字的位置。
可以使用正则表达式查找数字在字符串中的位置。下面的代码演示了如何在Java中获取数字的位置:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexDemo {
public static void main(String[] args) {
String str = "a1b23c456d";
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println("数字位置:" + matcher.start());
}
}
}
这里使用了正则表达式 \d+
来匹配字符串中的数字。在匹配成功后,使用 Matcher.start()
方法获取数字的起始位置。
输出结果为:
数字位置:1
数字位置:4
数字位置:8
还可以使用一些字符串函数获取数字在字符串中的位置。下面的代码演示了如何在Java中获取数字的位置:
public class StringDemo {
public static void main(String[] args) {
String str = "a1b23c456d";
int index = 0;
while (index < str.length()) {
index = str.indexOf(index + 1);
if (index == -1) {
break;
}
if (Character.isDigit(str.charAt(index))) {
System.out.println("数字位置:" + index);
}
}
}
}
这里使用了字符串函数 indexOf()
来查找下一个位置。在查找成功后,判断该位置是否为数字位置,如果是数字位置则输出。
输出结果为:
数字位置:1
数字位置:4
数字位置:8
Apache Commons Lang库提供了一些字符串处理的实用方法,包括获取数字在字符串中的位置。下面的代码演示了如何在Java中使用Apache Commons Lang库获取数字的位置:
import org.apache.commons.lang3.StringUtils;
public class LangDemo {
public static void main(String[] args) {
String str = "a1b23c456d";
String digits = StringUtils.getDigits(str);
for (int i = 0; i < digits.length(); i++) {
int index = StringUtils.indexOf(str, digits.charAt(i));
System.out.println("数字位置:" + index);
}
}
}
这里使用了 Apache Commons Lang库中的 StringUtils.getDigits()
方法获取字符串中的数字,然后使用字符串函数 indexOf()
查找数字在原始字符串中的位置。
输出结果为:
数字位置:1
数字位置:4
数字位置:8
使用正则表达式、字符串函数和Apache Commons Lang库都可以在Java中获取数字的位置。根据具体情况选择不同的方法,可以提高代码的效率和可读性。