推薦答案
在Java中,要從一串字符中提取數字,可以使用正則表達式或循環遍歷字符的方式來實現。
使用正則表達式提取數字:
import java.util.regex.*;
public class NumberExtractor {
public static void main(String[] args) {
String input = "abc123def456ghi789";
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
String number = matcher.group();
System.out.println(number);
}
}
}
上述代碼中,我們使用正則表達式\\d+來匹配連續的數字。\\d表示匹配一個數字字符,+表示匹配一個或多個該字符。通過matcher.find()方法可以找到所有匹配的數字,然后通過matcher.group()方法獲取匹配的數字字符串。
使用循環遍歷字符提取數字:
public class NumberExtractor {
public static void main(String[] args) {
String input = "abc123def456ghi789";
StringBuilder number = new StringBuilder();
for (char c : input.toCharArray()) {
if (Character.isDigit(c)) {
number.append(c);
} else if (number.length() > 0) {
System.out.println(number);
number.setLength(0); // 重置StringBuilder
}
}
if (number.length() > 0) {
System.out.println(number);
}
}
}
上述代碼中,我們遍歷輸入字符串中的每個字符,如果是數字字符,則將其添加到StringBuilder中。如果遇到非數字字符,并且StringBuilder中已經有數字,則表示當前數字提取結束,打印該數字字符串并清空StringBuilder。
無論使用正則表達式還是循環遍歷字符的方法,都可以將一串字符中的數字提取出來。
其他答案
-
在Java中,可以使用正則表達式或循環遍歷字符串的方法來提取一串字符中的數字。
使用正則表達式提取數字:
import java.util.regex.*;
public class NumberExtractor {
public static void main(String[] args) {
String input = "abc123def456ghi789";
String numbers = input.replaceAll("\\D", "");
System.out.println(numbers);
}
}
上述代碼中,我們使用replaceAll("\\D", "")方法將非數字字符替換為空字符串,從而得到只包含數字的字符串。
這里的正則表達式\\D表示匹配任何非數字字符。replaceAll()方法會將匹配到的字符替換成指定的字符串,這里我們用空字符串替換非數字字符。
使用循環遍歷字符串提取數字:
public class NumberExtractor {
public static void main(String[] args) {
String input = "abc123def456ghi789";
StringBuilder number = new StringBuilder();
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (Character.isDigit(c)) {
number.append(c);
} else if (number.length() > 0) {
System.out.println(number);
number.setLength(0); // 重置StringBuilder
}
}
if (number.length() > 0) {
System.out.println(number);
}
}
}
上述代碼中,我們遍歷輸入字符串的每個字符,如果是數字字符,則將其添加到StringBuilder中。當遇到非數字字符時,并且StringBuilder中已經有數字,則表示當前數字提取結束,打印該數字字符串并清空StringBuilder。
無論是使用正則表達式還是循環遍歷字符串的方法,都能夠從一串字符中提取出數字。
-
在Java中,可以使用正則表達式或循環遍歷字符串的方式來提取一串字符中的數字。
使用正則表達式提取數字:
import java.util.regex.*;
public class NumberExtractor {
public static void main(String[] args) {
String input = "abc123def456ghi789";
String[] numbers = input.split("\\D+");
for (String number : numbers) {
System.out.println(number);
}
}
}
上述代碼中,我們使用split("\\D+")方法根據非數字字符將字符串分割成一組數字字符串。這里的正則表達式\\D+表示匹配一個或多個非數字字符。
使用循環遍歷字符串提取數字:
public class NumberExtractor {
public static void main(String[] args) {
String input = "abc123def456ghi789";
StringBuilder number = new StringBuilder();
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (Character.isDigit(c)) {
number.append(c);
} else if (number.length() > 0) {
System.out.println(number);
number.setLength(0); // 重置StringBuilder
}
}
if (number.length() > 0) {
System.out.println(number);
}
}
}
上述代碼中,我們遍歷輸入字符串的每個字符,如果是數字字符,則將其添加到StringBuilder中。當遇到非數字字符,并且StringBuilder中已經有數字時,表示當前數字提取結束,打印該數字字符串并清空StringBuilder。
以上是使用正則表達式和循環遍歷字符串的兩種常用方法,可以從一串字符中提取出數字。無論你選擇哪種方法,都能夠完成數字的提取操作。