欢迎访问宙启技术站
智能推送

Java中如何实现函数来从字符串中提取数字?

发布时间:2023-07-03 16:17:09

在Java中,可以使用正则表达式、迭代和String类的方法来从字符串中提取数字。

1. 使用正则表达式(Regular Expression):利用正则表达式可以通过匹配特定的模式来提取数字。

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

public class Main {
    public static void main(String[] args) {
        String str = "abc123def456";
        Pattern pattern = Pattern.compile("\\d+"); // 匹配一个或多个数字
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            System.out.println(matcher.group()); // 输出匹配到的数字
        }
    }
}

2. 使用迭代循环:

public class Main {
    public static void main(String[] args) {
        String str = "abc123def456";
        StringBuilder numStr = new StringBuilder(); // 用于存储提取出的数字
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i); 
            if (Character.isDigit(c)) {
                numStr.append(c);
            } else {
                if (numStr.length() > 0) {
                    System.out.println(numStr); // 输出提取出的数字
                    numStr = new StringBuilder(); // 重置
                }
            }
        }
        if (numStr.length() > 0) {
            System.out.println(numStr);
        }
    }
}

3. 使用String类的方法:

public class Main {
    public static void main(String[] args) {
        String str = "abc123def456";
        StringBuilder numStr = new StringBuilder(); // 用于存储提取出的数字
        for (int i = 0; i < str.length(); i++) {
            if (Character.isDigit(str.charAt(i))) {
                numStr.append(str.charAt(i));
            } else {
                if (numStr.length() > 0) {
                    System.out.println(numStr); // 输出提取出的数字
                    numStr = new StringBuilder(); // 重置
                }
            }
        }
        if (numStr.length() > 0) {
            System.out.println(numStr);
        }
    }
}

以上是三种常见的方法来提取字符串中的数字,可以根据实际需求选择合适的方法来实现。