`
m635674608
  • 浏览: 4929635 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java从字符串中提取数字

    博客分类:
  • java
 
阅读更多

http://www.cnblogs.com/android-html5/archive/2012/06/02/2533926.html

 

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

String s="eert343dfg56756dtry66fggg89dfgf";

那我们如何把其中的数字提取出来呢?大致有以下几种方法,正则表达式,集合类,还有就是String类提供的方法。

1 String类提供的方法:

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. public boolean isDigit(String strNum) {  
  3.     return strNum.matches("[0-9]{1,}");  
  4. }  
  5.   
  6. // 判断一个字符串是否都为数字  
  7. public boolean isDigit(String strNum) {  
  8.     Pattern pattern = Pattern.compile("[0-9]{1,}");  
  9.     Matcher matcher = pattern.matcher((CharSequence) strNum);  
  10.     return matcher.matches();  
  11. }  
  12.   
  13.    //截取数字  
  14.    public String getNumbers(String content) {  
  15.        Pattern pattern = Pattern.compile("\\d+");  
  16.        Matcher matcher = pattern.matcher(content);  
  17.        while (matcher.find()) {  
  18.            return matcher.group(0);  
  19.        }  
  20.        return "";  
  21.    }  
  22.   
  23. // 截取非数字  
  24. public String splitNotNumber(String content) {  
  25.     Pattern pattern = Pattern.compile("\\D+");  
  26.     Matcher matcher = pattern.matcher(content);  
  27.     while (matcher.find()) {  
  28.         return matcher.group(0);  
  29.     }  
  30.     return "";  
  31. }  

 

分享到:
评论

相关推荐

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

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

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

    下面小编就为大家带来一篇java从字符串中提取数字的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    java获取字符串内的数字

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

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

    主要介绍了java基于正则提取字符串中的数字功能,可用于提取短信中的验证码,涉及java基于正则的字符串匹配相关操作技巧,需要的朋友可以参考下

    从String中提取数字还有小数点

    从String中提取数字还有小数点

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

    最近工作中遇到了一个需求,需要利用java获取字符串中的数字,尝试几种方法后发现利用正则表达式实现最为方法,下面这篇文章就主要介绍了Java通过正则表达式获取字符串中数字的方法,文中给出了详细的示例代码,需要...

    字符转换工具类

    字符转换工具类:包含了生成html最全的源码,并有详细的注释

    Java正则表达式提取字符的方法实例

    正好遇到一个需求需要将字符串中特定的字符全部提取出来,这个如果是按常规的字符串处理的话非常的繁琐。于是想到用正则表达式来完成。项目需求是这样的:需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A...

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

    NULL 博文链接:https://just-do-myself.iteye.com/blog/674173

    Java2实用教程提取码

    第5章 字符串 第6章 时间、日期和数字 第7章 AWT组件及事件处理 第8章 建立对话框 第9章 Java多线程机制 第10章 输入输出流 第11章 Java网络的基本知识 第12章 JavaApplet基础 第13章 常见数据结构的Java实现 第14章...

    JAVA_API1.6文档(中文)

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    java正则表达式提取数字的方法实例

    主要介绍了java正则表达式提取数字的方法,还有去除字符串数字的方法,大家参考使用吧

    Visual C++ 2005入门经典--源代码及课后练习答案

    6.7.2 从字符串中删除空格 268 6.7.3 计算表达式的值 268 6.7.4 获得项值 271 6.7.5 分析数 272 6.7.6 整合程序 274 6.7.7 扩展程序 276 6.7.8 提取子字符串 277 6.7.9 运行修改过的程序 280 6.8 ...

    java源码包---java 源码 大量 实例

    Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是大家...

    Java 1.6 API 中文 New

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类。...

    JavaAPI1.6中文chm文档 part1

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    java源码包2

    Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是...

    JAVA上百实例源码以及开源项目

    Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是大家...

    java正则表达式获取大括号小括号内容并判断数字和小数亲测可用

    获取大括号小括号内容 项目开发用到了,暂做个简单记录 private static String regex = "\\{([^}]*)\\}";//匹配大括号 private static String regexx = "\\(([^}]*)\\)";//匹配小括号 public static void main...

    java源码包4

    Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一款用于反映颜色变化的面板,也就是...

Global site tag (gtag.js) - Google Analytics