随便给你一个含有数字的字符串,比如:
String s="eert343dfg56756dtry66fggg89dfgf";
那我们如何把其中的数字提取出来呢?大致有以下几种方法,正则表达式,集合类,还有就是String类提供的方法。
1String类提供的方法:
package 测试练习;
import java.util.*;
public class get_StringNum {
/**
*2012.6.2
*/
public static void main(String[] args) {
String str = "love23next234csdn3423javaeye";
str=str.trim();
String str2="";
if(str != null && !"".equals(str)){
for(int i=0;i<str.length();i++){
if(str.charAt(i)>=48 && str.charAt(i)<=57){
str2+=str.charAt(i);
}
}
}
System.out.println(str2);
}
}
output:
232343423
这个方法有个明显的缺点,只能把数字全部提取到一起,不能分别提取。当然也可以改进,有兴趣的朋友可以试试。
2 正则表达式
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class get_StringNum {
/**
*2012.6.2
*/
public static void main(String[] args) {
String a="love23next234csdn3423javaeye";
String regEx="[^0-9]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(a);
System.out.println( m.replaceAll("").trim());
}
}
output:
232343423
Pattern ,Matcher是java.util.regex软件包里的两个类,具体用法大家可以查阅一下api。同样也不能单个提取数字。
3 集合类库
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class get_StringNum {
/**
*2012.6.2
*/
public static void main(String[] args) {
String a="love23next234csdn3423javaeye";
List<String> digitList = new ArrayList<String>();
Pattern p = Pattern.compile("[^0-9]");
Matcher m = p.matcher(a);
String result = m.replaceAll("");
for (int i = 0; i < result.length(); i++) {
digitList.add(result.substring(i, i+1));
}
System.out.println(digitList);
}
}
output:
[2, 3, 2, 3, 4, 3, 4, 2, 3]
相同的思路:
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class get_StringNum {
/**
*2012.6.2
*/
public static void main(String[] args) {
String a="love23next234csdn3423javaeye";
List<String> ss = new ArrayList<String>();
for(String sss:s.replaceAll("[^0-9]", ",").split(",")){
if (sss.length()>0)
ss.add(sss);
}
System.out.print(ss);
}
}
output:
[2, 3, 2, 3, 4, 3, 4, 2, 3]
很明显,利用正则表达式我们就可以分别提取数字了。
另外还有一个利用查阅文档找出的答案,如下:
/**
* 从字符串文本中获得数字
*@param
text
*@return
*/
publicstatic
List<Long>
getDigit(String text) {
List<Long>
digitList =new
ArrayList<Long>();
Pattern p=
Pattern.compile("(\\d+)");
Matcher m=
p.matcher(text);
while
(m.find()) {
String find=
m.group(1).toString();
digitList.add(Long.valueOf(find));
}return
digitList;
}
两个用正则表达式匹配的判断方法,如下;
-
-
publicbooleanisDigit(StringstrNum){
-
returnstrNum.matches("[0-9]{1,}");
-
}
-
-
-
publicbooleanisDigit(StringstrNum){
-
Patternpattern=Pattern.compile("[0-9]{1,}");
-
Matchermatcher=pattern.matcher((CharSequence)strNum);
-
returnmatcher.matches();
-
}
-
-
-
publicStringgetNumbers(Stringcontent){
-
Patternpattern=Pattern.compile("\\d+");
-
Matchermatcher=pattern.matcher(content);
-
while(matcher.find()){
-
returnmatcher.group(0);
-
}
-
return"";
-
}
-
-
-
publicStringsplitNotNumber(Stringcontent){
-
Patternpattern=Pattern.compile("\\D+");
-
Matchermatcher=pattern.matcher(content);
-
while(matcher.find()){
-
returnmatcher.group(0);
-
}
-
return"";
-
}
至此,关于从字符串中提取数字的文章就写到这,欢迎大家提意见。
分享到:
相关推荐
java从一个包含中文字的字符串中抽取数字部分的两种方法,自己使用后,感觉挺符合需求了,分享出来。有需要的可以看看,看是否符合需求。
总结来说,从Java字符串中提取数字有多种方法,包括直接遍历字符、正则表达式替换和集合类的使用。每种方法都有其适用场景,根据实际需求可以选择最合适的方式。在实际开发中,正则表达式通常被认为是最简洁且强大的...
java通过正则表达式获取字符串内的数字简单实例
本篇文章将深入探讨如何从字符串中提取括号内的内容,主要关注于基础的字符串操作、正则表达式以及如何利用这些工具来实现目标。 首先,我们要明白Java中的字符串是`String`类的对象,它提供了丰富的API用于字符串...
在Java编程语言中,获取字符串中的所有...总结来说,Java中获取字符串内的数字主要依赖于正则表达式,具体包括编译正则表达式、创建匹配器以及遍历和提取匹配项。掌握这些技能将有助于提升你在处理字符串数据时的能力。
在Java编程语言中,分割字符串是一项常见的操作,它允许我们将一个长字符串分解成多个子字符串,每个子字符串对应原字符串中的某个部分。这通常通过使用`String`类提供的`split()`方法来完成。本篇文章将深入探讨...
在Java编程语言中,字符串...以上只是Java字符串操作的一小部分,实际开发中还有许多其他方法和特性,如国际化(I18N)、正则表达式等,都需要程序员灵活掌握。理解并熟练运用这些操作,能有效提高代码质量和效率。
本篇文章将详细讲解如何利用Java的正则表达式功能来从字符串中提取数字,特别是在短信验证码提取场景中的应用。 首先,我们需要理解正则表达式的概念。正则表达式是由特殊字符和普通字符组成的字符串,它定义了一种...
3. **字符串解析**:从字符串的末尾开始遍历,每次遇到一个中文数字,根据映射表获取对应的阿拉伯数字,并与当前位置的值相乘。 4. **累加计算**:在解析过程中,每个位置的数字乘以其对应的权重(即位值),然后...
在IT行业中,字符转换工具类是编程中常见的一种实用工具,尤其在处理字符串与各种编码格式之间转换时显得尤为重要。这个“字符转换工具类”似乎是一个专门为生成HTML源码而设计的工具,它包含了全面的源码实现,并且...
当需要从字符串中提取数字时,正则表达式是首选的方法之一。本篇文章将详细讲解如何使用Java和正则表达式来获取字符串中的数字。 首先,我们需要了解Java中的`java.util.regex`包,这个包提供了`Pattern`和`Matcher...
这个组件可能扩展了这个功能,提供更灵活的子字符串提取方式,比如根据正则表达式或者指定起始和结束位置的索引。 3. **字符串加密**: Java提供了`javax.crypto`包用于加密和解密操作。该组件可能实现了常见的...
在Java编程语言中,IO(Input/Output)操作是处理数据输入和输出的关键部分,而将字符串解析为数值数组则是日常编程中常见的任务。本文将深入探讨这两个主题,并结合提供的两个文件名`TestWriteD.java`和`TestSplitD...
在Java编程语言中,处理字符串时,了解字符串的编码类型是非常重要的。编码类型决定了字符集,它定义了如何将字符转换为数字(字节)以及如何将数字转换回字符。常见的编码类型有ASCII、ISO-8859-1、UTF-8、GBK等。...
在Java编程语言中,处理字符串和正则表达式是一项常见的任务。正则表达式是一种强大的文本模式匹配工具,可以用于搜索、替换或者提取符合特定规则的字符串。在本篇文章中,我们将深入探讨如何利用Java中的Xeger和...
压缩包中的“字符串任意提取.exe”可能是一个执行程序,它可能实现了上述功能,即根据用户的需求从输入的字符串中提取特定类型的字符。不过,具体的功能和使用方法需要运行程序后才能了解。在使用任何未知来源的可...
在Java编程中,有时我们需要从一个字符串中提取出其中的数字字符串。这可能是为了进行数据处理、数据分析或者验证用户输入等。本篇文章将探讨几种不同的方法来实现这一目标,主要聚焦于从字符串中查找和识别数字字符...
在Java编程中,字符串数组和大数据运算经常被用于复杂的数据处理...分析和理解这个代码可以帮助深化对Java字符串数组和大数据运算的理解。如果遇到任何问题,如内存管理、性能优化或异常处理,都可以进一步研究和解决。
在IT行业中,Java是一种广泛应用的编程语言,尤其在处理文本数据和字符串操作方面表现出色。本主题将深入探讨如何使用Java来实现字符提取,这对于数据分析、日志处理、文本挖掘等场景都至关重要。 首先,我们要了解...
"截取指定长度的字符串"这个主题涉及到的是如何从一个字符串中提取出特定长度的部分。这在处理用户输入、数据展示、信息提取等多个场景中都非常常见。接下来,我们将深入探讨这个知识点。 首先,让我们明确什么是...