`
java--hhf
  • 浏览: 305443 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

如何解析出String中的数字

阅读更多

 

                   比如将一串字符串“1 2 3 4 5 6 7 8 9 12 23 456 .....”中的数字解析出来

 

String data = "           123 456 4 5 6 6 8 5 2 2 85 2 5 2 5 2 5 0 5 2          ".trim();
		System.out.println("首位的空格被取消了"+data.trim()+"首位的空格被取消了");
		//统计空格出现次数
		char[] c = data.toCharArray();//将字符串转化为字符数组
		int count = 0;//用以统计空格出现了多少次
		for(char v : c){//循环遍历
			if(' ' == v)//一经发现 加一
				count++;
		}
		//定义输入文本格式
		String messageFormat = "{0,number,integer}";//每一个节点值是{编号,内容,类型}
		for(int i=0; i<count; i++){//开始根据空格数定义格式
			messageFormat += " {"+(i+1)+",number,integer}";
		}
		System.out.println(messageFormat);
		//解析出数字
		Object[] data_values = new MessageFormat(messageFormat).parse(data.trim());
		//遍历数字
		for (Object v : data_values)
			System.out.println(v + "(" + v.getClass().getName() + ")");

 结果:

首位的空格被取消了123 456 4 5 6 6 8 5 2 2 85 2 5 2 5 2 5 0 5 2首位的空格被取消了
{0,number,integer} {1,number,integer} {2,number,integer} {3,number,integer} {4,number,integer} {5,number,integer} {6,number,integer} {7,number,integer} {8,number,integer} {9,number,integer} {10,number,integer} {11,number,integer} {12,number,integer} {13,number,integer} {14,number,integer} {15,number,integer} {16,number,integer} {17,number,integer} {18,number,integer} {19,number,integer}
123(java.lang.Long)
456(java.lang.Long)
4(java.lang.Long)
5(java.lang.Long)
6(java.lang.Long)
6(java.lang.Long)
8(java.lang.Long)
5(java.lang.Long)
2(java.lang.Long)
2(java.lang.Long)
85(java.lang.Long)
2(java.lang.Long)
5(java.lang.Long)
2(java.lang.Long)
5(java.lang.Long)
2(java.lang.Long)
5(java.lang.Long)
0(java.lang.Long)
5(java.lang.Long)
2(java.lang.Long)

 

———————————————————————————————————————————————

 使用MessageFormat可以解析任意自定义格式的string,很方便哦,如:

		String sid = "u1234q5678";
		Object[] values = new MessageFormat("u{0,number,integer}q{1,number,integer}").parse(sid);
		for (Object v : values)
			System.out.println(v + "(" + v.getClass().getName() + ")");

 结果:

1234(java.lang.Long)
5678(java.lang.Long)

 

0
1
分享到:
评论
6 楼 java--hhf 2014-04-02  
今天学习正则表达式有发现了一种新的办法
Pattern p=Pattern.compile("[ ]"); //以空格为分隔符
String str[] = p.split("123 456 4 5 6 6 8 5 2 2 85 2 5 2 5 2 5 0 5 2");
for (int i = 0; i < str.length; i++) {
   System.out.println(Integer.parseInt(str[i]));
}

另我写了一篇关于正则表达式的博客哦 有兴趣的读者可以看下哈
http://java--hhf.iteye.com/blog/2040136
5 楼 java--hhf 2014-03-26  
  谢谢楼上几位
4 楼 wufeji 2014-03-23  
小问题复杂化啦
3 楼 canghailan 2014-03-23  
public static void main(String[] args) {
	String data = "           123 456 4 5 6 6 8 5 2 2 85 2 5 2 5 2 5 0 5 2          ";
	Pattern pattern = Pattern.compile("(\\d+)");
	Matcher matcher = pattern.matcher(data);
	while (matcher.find()) {
		String number = matcher.group(1);
		System.out.println(Integer.parseInt(number));
	}
}
2 楼 canghailan 2014-03-23  
用正则 (\d+) 就OK了
1 楼 030710314 2014-03-23  
为什么不用正则表达式,split(regex)来分词呢?

相关推荐

    dom4j以String的方式读取XML的内容,并给String的值赋值,写入XML中

    dom4j以String的方式读取XML的内容,并给String的值赋值,写入XML中

    java中的String类常用方法解析(一)

    NULL 博文链接:https://1017401036.iteye.com/blog/2254375

    字符串类型的数学表达式 不用解析 直接得出结果

    字符串类型的数学表达式 不用解析 直接得出结果 public class IllegalExpressionException extends RuntimeException { private static final long serialVersionUID = 7941685726759058059L; public ...

    String工具箱

    //判断一个字符串中是否包含一个数字 public static boolean isDigit(String s){ //0--9; char c[]=s.toCharArray(); for(int i=0;i;i++){ if(c[i]&gt;='0'&&c[i]){ return true; } } return ...

    string-calculator

    字符串计算器目标:创建一个计算器,该计算器接受可变数量的字符串,将其转换为整数,然后返回总和使用add()方法创建一个StringCalculator类。... 11 字符串应由IntegerParser.parse(String number)解析

    使用循环【迭代】来进行转化数字为中文

    /// 对【0000~9999】之间的数字进行迭代解析成中文 /// 类似于除基取余法 /// /// 倍率 /// 需要解析的数字 /// &lt;returns&gt;&lt;/returns&gt; private static string GetChinese(int multiple, int number) { if ...

    Python解析json时提示“string indices must be integers”问题解决方法

    本文实例讲述了Python解析json时提示“string indices must be integers”问题解决方法。分享给大家供大家参考,具体如下: import json,但是出现了一个奇怪的问题: string indices must be integers 这个错误告诉...

    词法分析器与语法分析器.rar

    //打印预测分析表(由于预测分析表过于庞大,在程序中被注释) vector&lt;string&gt; split(const string& str, const string& delim); //处理一个token void deal_tokens(); //对词法分析器得到的token表进行处理

    Delphi 数学公式,表达示解析

    function qbdsz(s:string):double; //取表达式值 implementation var x:array of double; //实数范围可以更改 y:array of string; max:integer; pai,e:double; function qz(s:string):double; //将没有...

    Jep3.5 数学公式计算 jar包及中文操作手册文档

    5分是让绝大多数人能以最高的性价比下载到此文档 ...一 概述 11 特性 12 解析和计算 121 解析 122 计算 二、基本用法 21 入门指南 22 错误处理 ...41 String ...53 为可配置的解析器加入和操作操作符 ...后续超长未列出

    java 解析Excel 并判断解析的数据类型__Eclipse工程

    java 解析Excel 并判断解析的数据类型__Eclipse工程,纯手工,无复制

    Java String类正则操作示例

    主要介绍了Java String类正则操作,结合实例形式分析了java针对数字的正则验证、过滤及邮箱正则验证相关操作技巧,需要的朋友可以参考下

    parseInt—解析字符串

    是Javascript内置函数,原型为parseInt ( String s , [ int radix ] ),用于解析一个字符串,并返回一个整数。 使用 parseInt(string, radix) 参数 描述 string 必需。要被解析的字符串。 radix 可选。...

    C++支持的表达式解析

    使用boost::sprirt编写的表达式解析器,代码很容易扩展,功能很强大,适合做功能强大的客户化定义程序。 -----------表达式解析--------- 已定义的函数有:PI,SIN,COS,TAN,,ABS,EXP,LOGN,POW,SQRT,FORMAT,LENGTH,...

    CP_test_1.rar_cp分解_float_test编译原理_编译原理实验_词法分析 小数

    编译原理实验 词法分析 一、实验目的: ...注意:调用一次词法分析函数scan( )只识别出一个单词。 2)返回单词类别、单词本身、所在的行列号; 3、编写测试程序,反复调用函数scan( ),输出单词种别和属性。

    springMVC poi解析ajax上传excel文件,返回json对象\list数组

    将每行数据放入List&lt;String[]&gt; list = new Array List&lt;String[]&gt;(),并根据excel数据类型将器转换为字符串、数字、Boolean、公式、空值类型防止出现错误,最后返回一个list. 2. ExcelUtil.java工具类 解析通过...

    编译原理实验报告--词法分析器

    * @param checkdNumber 分析数字字段 */ private void decideNum(String checkdNumber) { if (Digit.hasDot(checkdNumber)) { try { double num = Double.parseDouble(checkdNumber); this.temp....

    Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍

    下面就来详细说一说 Javascript 中 Boolean、Nnumber、String 强制类型转换的区别。 我们知道 Boolean(value) 是把值转换成Boolean类型,Nnumber(value) 是把值转换成数字(整型或浮点数),而 String(value) 是把值...

    Math Expression String Parser (MESP)-开源

    用Java编写的数学表达式解析器。 表达式可以包含变量,函数和常量。 解析器将字符串参数转换为表达式树,然后可以对其进行求值。

    动态公式解析计算

    --变量支持点、下划线、非开始数字等: 如M1,m_Str,m_t1.t2.t3等等 使用方法: //1 .先引入 DataPreprocessing.dll //2 .添加命名空间 using Lis.DataPreprocessing; //2 .编辑如下代码 / InterFace代数式计算...

Global site tag (gtag.js) - Google Analytics