推薦答案
在Java中,要從一串字符中提取數(shù)字,可以使用正則表達(dá)式或循環(huán)遍歷字符的方式來(lái)實(shí)現(xiàn)。
使用正則表達(dá)式提取數(shù)字:
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+來(lái)匹配連續(xù)的數(shù)字。\\d表示匹配一個(gè)數(shù)字字符,+表示匹配一個(gè)或多個(gè)該字符。通過(guò)matcher.find()方法可以找到所有匹配的數(shù)字,然后通過(guò)matcher.group()方法獲取匹配的數(shù)字字符串。
使用循環(huán)遍歷字符提取數(shù)字:
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);
}
}
}
上述代碼中,我們遍歷輸入字符串中的每個(gè)字符,如果是數(shù)字字符,則將其添加到StringBuilder中。如果遇到非數(shù)字字符,并且StringBuilder中已經(jīng)有數(shù)字,則表示當(dāng)前數(shù)字提取結(jié)束,打印該數(shù)字字符串并清空StringBuilder。
無(wú)論使用正則表達(dá)式還是循環(huán)遍歷字符的方法,都可以將一串字符中的數(shù)字提取出來(lái)。
其他答案
-
在Java中,可以使用正則表達(dá)式或循環(huán)遍歷字符串的方法來(lái)提取一串字符中的數(shù)字。
使用正則表達(dá)式提取數(shù)字:
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", "")方法將非數(shù)字字符替換為空字符串,從而得到只包含數(shù)字的字符串。
這里的正則表達(dá)式\\D表示匹配任何非數(shù)字字符。replaceAll()方法會(huì)將匹配到的字符替換成指定的字符串,這里我們用空字符串替換非數(shù)字字符。
使用循環(huán)遍歷字符串提取數(shù)字:
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);
}
}
}
上述代碼中,我們遍歷輸入字符串的每個(gè)字符,如果是數(shù)字字符,則將其添加到StringBuilder中。當(dāng)遇到非數(shù)字字符時(shí),并且StringBuilder中已經(jīng)有數(shù)字,則表示當(dāng)前數(shù)字提取結(jié)束,打印該數(shù)字字符串并清空StringBuilder。
無(wú)論是使用正則表達(dá)式還是循環(huán)遍歷字符串的方法,都能夠從一串字符中提取出數(shù)字。
-
在Java中,可以使用正則表達(dá)式或循環(huán)遍歷字符串的方式來(lái)提取一串字符中的數(shù)字。
使用正則表達(dá)式提取數(shù)字:
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+")方法根據(jù)非數(shù)字字符將字符串分割成一組數(shù)字字符串。這里的正則表達(dá)式\\D+表示匹配一個(gè)或多個(gè)非數(shù)字字符。
使用循環(huán)遍歷字符串提取數(shù)字:
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);
}
}
}
上述代碼中,我們遍歷輸入字符串的每個(gè)字符,如果是數(shù)字字符,則將其添加到StringBuilder中。當(dāng)遇到非數(shù)字字符,并且StringBuilder中已經(jīng)有數(shù)字時(shí),表示當(dāng)前數(shù)字提取結(jié)束,打印該數(shù)字字符串并清空StringBuilder。
以上是使用正則表達(dá)式和循環(huán)遍歷字符串的兩種常用方法,可以從一串字符中提取出數(shù)字。無(wú)論你選擇哪種方法,都能夠完成數(shù)字的提取操作。
熱問(wèn)標(biāo)簽 更多>>
人氣閱讀
大家都在問(wèn) 更多>>
java虛函數(shù)的作用是什么,怎么用
java讀取相對(duì)路徑配置文件怎么操...
java靜態(tài)代碼塊和構(gòu)造方法執(zhí)行順...