📜  如何在java中获取数字的位置(1)

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

如何在Java中获取数字的位置

在Java编程中,经常需要获取数字在字符串中的位置。本文将介绍如何在Java中获取数字的位置。

1. 使用正则表达式

可以使用正则表达式查找数字在字符串中的位置。下面的代码演示了如何在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
2. 使用字符串函数

还可以使用一些字符串函数获取数字在字符串中的位置。下面的代码演示了如何在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
3. 使用Apache Commons Lang库

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中获取数字的位置。根据具体情况选择不同的方法,可以提高代码的效率和可读性。