关于“java从字符串中提取数字的简单实例”,以下是完整攻略:
1. 前言
在开发Java应用程序时,经常需要从字符串中提取数字,这种情况很常见。本文将介绍使用Java代码如何从字符串中提取数字。
2. 通过正则表达式实现
使用正则表达式可以很方便地从字符串中提取数字。代码示例1如下:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExtractNumber {
public static void main(String[] args) {
String str = "hello 123 world 456!";
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(str);
while (m.find()) {
System.out.println(m.group());
}
}
}
代码说明:
- String str = "hello 123 world 456!":定义了一个包含数字的字符串。
- Pattern p = Pattern.compile("\d+"):定义正则表达式,以匹配数字。其中,\d表示数字,+表示匹配1个或多个。
- Matcher m = p.matcher(str):使用Pattern对象的matcher方法,生成一个Matcher对象。该对象可以对字符串进行操作。
- while (m.find()): while循环,以在字符串中寻找数字。如果匹配到数字,就会执行循环中的语句。
- System.out.println(m.group()):输出匹配到的数字。
上述代码的输出结果为:
123
456
3. 通过String类的操作实现
除了使用正则表达式,还可以使用String类中的一些方法操作字符串,例如,substring、indexOf等。代码示例2如下:
public class ExtractNumber {
public static void main(String[] args) {
String str = "hello 123 world 456!";
String numStr = "";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (Character.isDigit(c)) { // 如果是数字
numStr += c;
} else if (numStr.length() > 0) { // 如果不是数字,但已有数字字符串
System.out.println(numStr);
numStr = "";
}
}
if (numStr.length() > 0) { // 处理末尾数字字符串的情况
System.out.println(numStr);
}
}
}
代码说明:
- String str = "hello 123 world 456!":定义了一个包含数字的字符串。
- for循环遍历字符串中的每个字符。
- char c = str.charAt(i):获取字符串中第i个字符。
- if (Character.isDigit(c)) { ... }:如果该字符是数字,则将该字符加入numStr中存储。
- else if (numStr.length() > 0) { ... }:如果该字符不是数字,但是已经存储了数字字符串,就输出数字字符串。
- if (numStr.length() > 0) { ... }:for循环结束后,处理最后一个数字字符串的输出。
上述代码的输出结果为:
123
456
4. 总结
本文介绍了两种从字符串中提取数字的方法,通过正则表达式和String类方法实现。在实际开发中,根据需求进行使用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java从字符串中提取数字的简单实例 - Python技术站