`

java从字符串中提取数字

 
阅读更多

随便给你一个含有数字的字符串,比如:

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;

}

两个用正则表达式匹配的判断方法,如下;

Java代码收藏代码
  1. //判断一个字符串是否都为数字
  2. publicbooleanisDigit(StringstrNum){
  3. returnstrNum.matches("[0-9]{1,}");
  4. }
  5. //判断一个字符串是否都为数字
  6. publicbooleanisDigit(StringstrNum){
  7. Patternpattern=Pattern.compile("[0-9]{1,}");
  8. Matchermatcher=pattern.matcher((CharSequence)strNum);
  9. returnmatcher.matches();
  10. }
  11. //截取数字
  12. publicStringgetNumbers(Stringcontent){
  13. Patternpattern=Pattern.compile("\\d+");
  14. Matchermatcher=pattern.matcher(content);
  15. while(matcher.find()){
  16. returnmatcher.group(0);
  17. }
  18. return"";
  19. }
  20. //截取非数字
  21. publicStringsplitNotNumber(Stringcontent){
  22. Patternpattern=Pattern.compile("\\D+");
  23. Matchermatcher=pattern.matcher(content);
  24. while(matcher.find()){
  25. returnmatcher.group(0);
  26. }
  27. return"";
  28. }

至此,关于从字符串中提取数字的文章就写到这,欢迎大家提意见。

分享到:
评论

相关推荐

    java从字符串中获取数字的两种方法

    java从一个包含中文字的字符串中抽取数字部分的两种方法,自己使用后,感觉挺符合需求了,分享出来。有需要的可以看看,看是否符合需求。

    java从字符串中提取数字的简单实例

    总结来说,从Java字符串中提取数字有多种方法,包括直接遍历字符、正则表达式替换和集合类的使用。每种方法都有其适用场景,根据实际需求可以选择最合适的方式。在实际开发中,正则表达式通常被认为是最简洁且强大的...

    java获取字符串内的数字

    java通过正则表达式获取字符串内的数字简单实例

    java字符串处理取出括号内的字符串

    本篇文章将深入探讨如何从字符串中提取括号内的内容,主要关注于基础的字符串操作、正则表达式以及如何利用这些工具来实现目标。 首先,我们要明白Java中的字符串是`String`类的对象,它提供了丰富的API用于字符串...

    java获取字符串内全部数字

    在Java编程语言中,获取字符串中的所有...总结来说,Java中获取字符串内的数字主要依赖于正则表达式,具体包括编译正则表达式、创建匹配器以及遍历和提取匹配项。掌握这些技能将有助于提升你在处理字符串数据时的能力。

    java 分割字符串

    在Java编程语言中,分割字符串是一项常见的操作,它允许我们将一个长字符串分解成多个子字符串,每个子字符串对应原字符串中的某个部分。这通常通过使用`String`类提供的`split()`方法来完成。本篇文章将深入探讨...

    JAVA 字符串 操作

    在Java编程语言中,字符串...以上只是Java字符串操作的一小部分,实际开发中还有许多其他方法和特性,如国际化(I18N)、正则表达式等,都需要程序员灵活掌握。理解并熟练运用这些操作,能有效提高代码质量和效率。

    java基于正则提取字符串中的数字功能【如提取短信中的验证码】

    本篇文章将详细讲解如何利用Java的正则表达式功能来从字符串中提取数字,特别是在短信验证码提取场景中的应用。 首先,我们需要理解正则表达式的概念。正则表达式是由特殊字符和普通字符组成的字符串,它定义了一种...

    中文数字转成阿拉伯数字 java 实现

    3. **字符串解析**:从字符串的末尾开始遍历,每次遇到一个中文数字,根据映射表获取对应的阿拉伯数字,并与当前位置的值相乘。 4. **累加计算**:在解析过程中,每个位置的数字乘以其对应的权重(即位值),然后...

    字符转换工具类

    在IT行业中,字符转换工具类是编程中常见的一种实用工具,尤其在处理字符串与各种编码格式之间转换时显得尤为重要。这个“字符转换工具类”似乎是一个专门为生成HTML源码而设计的工具,它包含了全面的源码实现,并且...

    Java通过正则表达式获取字符串中数字的方法示例

    当需要从字符串中提取数字时,正则表达式是首选的方法之一。本篇文章将详细讲解如何使用Java和正则表达式来获取字符串中的数字。 首先,我们需要了解Java中的`java.util.regex`包,这个包提供了`Pattern`和`Matcher...

    java实现字符串处理组件-源代码

    这个组件可能扩展了这个功能,提供更灵活的子字符串提取方式,比如根据正则表达式或者指定起始和结束位置的索引。 3. **字符串加密**: Java提供了`javax.crypto`包用于加密和解密操作。该组件可能实现了常见的...

    Java IO操作和将字符串解析为数值数组

    在Java编程语言中,IO(Input/Output)操作是处理数据输入和输出的关键部分,而将字符串解析为数值数组则是日常编程中常见的任务。本文将深入探讨这两个主题,并结合提供的两个文件名`TestWriteD.java`和`TestSplitD...

    java获取字符串编码类型代码(导入直接查看结果)

    在Java编程语言中,处理字符串时,了解字符串的编码类型是非常重要的。编码类型决定了字符集,它定义了如何将字符转换为数字(字节)以及如何将数字转换回字符。常见的编码类型有ASCII、ISO-8859-1、UTF-8、GBK等。...

    Java根据正则表达式生成字符串—Xeger,automaton

    在Java编程语言中,处理字符串和正则表达式是一项常见的任务。正则表达式是一种强大的文本模式匹配工具,可以用于搜索、替换或者提取符合特定规则的字符串。在本篇文章中,我们将深入探讨如何利用Java中的Xeger和...

    字符串任意提取.rar

    压缩包中的“字符串任意提取.exe”可能是一个执行程序,它可能实现了上述功能,即根据用户的需求从输入的字符串中提取特定类型的字符。不过,具体的功能和使用方法需要运行程序后才能了解。在使用任何未知来源的可...

    Java实现从字符串中找出数字字符串的方法小结

    在Java编程中,有时我们需要从一个字符串中提取出其中的数字字符串。这可能是为了进行数据处理、数据分析或者验证用户输入等。本篇文章将探讨几种不同的方法来实现这一目标,主要聚焦于从字符串中查找和识别数字字符...

    java字符串数组实现大数据运算

    在Java编程中,字符串数组和大数据运算经常被用于复杂的数据处理...分析和理解这个代码可以帮助深化对Java字符串数组和大数据运算的理解。如果遇到任何问题,如内存管理、性能优化或异常处理,都可以进一步研究和解决。

    用java 语言实现的提取字符

    在IT行业中,Java是一种广泛应用的编程语言,尤其在处理文本数据和字符串操作方面表现出色。本主题将深入探讨如何使用Java来实现字符提取,这对于数据分析、日志处理、文本挖掘等场景都至关重要。 首先,我们要了解...

    截取指定长度的字符串

    "截取指定长度的字符串"这个主题涉及到的是如何从一个字符串中提取出特定长度的部分。这在处理用户输入、数据展示、信息提取等多个场景中都非常常见。接下来,我们将深入探讨这个知识点。 首先,让我们明确什么是...

Global site tag (gtag.js) - Google Analytics