`
java--hhf
  • 浏览: 309145 次
  • 性别: 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)来分词呢?

相关推荐

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

    本文将深入解析`String`类的一些常用方法,帮助开发者更好地理解和使用这个核心类。 1. **构造方法** - `String()`:创建一个空字符串。 - `String(char[] value)`:根据字符数组创建字符串。 - `String(String ...

    String.Format数字格式化输出

    本文将详细介绍`String.Format`方法中的几种常用的数字格式化方式。 #### 1. 数字格式化符简介 `String.Format`方法通过不同的格式化符来指定输出的格式。格式化符通常放在大括号`{}`内,并且可以通过索引访问具体...

    C#_string_byte数组转换解析

    本篇文章将详细解析C#中如何进行这两种数据类型的转换,并讨论转换过程中需要注意的事项。 首先,我们来看最基础的转换方法: 1. **字符串(string)转为字节数组(byte[])**: 这个过程涉及到字符编码,C#中可以...

    标准库string处理数字的方法

    本文将通过一个简单的示例来探讨如何使用`string`处理数字,特别是如何将数字转换成字符串以及如何在字符串中嵌入数字。 #### 示例代码分析 首先,我们来看一下示例代码的核心部分: ```cpp #include #include...

    C#String.Format数字格式化输出 .txt

    下面将深入解析`String.Format`方法在数字格式化中的应用,以及如何通过不同的格式化字符串来达到预期的输出效果。 ### 基本用法 `String.Format`的基本语法是: ```csharp string result = string.Format(format...

    java中String类型和int类型比较及相互转换

    需要注意的是,如果字符串无法解析成一个有效的整数,如包含非数字字符或超过int类型范围的数字,`parseInt()`方法将抛出`NumberFormatException`异常。 #### 3.2 int转String 将int类型的值转换为String类型,可以...

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

    在这个场景中,我们关注的是如何使用DOM4J以String的形式读取XML内容,然后将String的值赋给XML中的特定节点,最后将更新后的内容写回XML文件。下面我们将详细探讨这一过程。 1. **解析XML到String** 要将XML文件...

    android用base64实现文件与string相互转换

    在Android开发中,有时我们需要将文件转换为字符串(String)以便于在网络上传输或存储,同时也有时需要将字符串恢复为原始文件。Base64是一种常见的编码方式,它可以把二进制数据转换成ASCII字符串形式,同时又能...

    JavaBean与JsonString的相互转换

    在Java开发中,JavaBean和JsonString是两种常见的数据表示形式。JavaBean是Java对象的一种规范,用于封装数据,而JsonString是一种轻量级的数据交换格式,常用于前后端交互。本篇将深入探讨JavaBean与JsonString之间...

    c++ string转换double

    ### C++ 中 string 转换为 double 的方法 在 C++ 编程语言中,字符串(`std::string`)与数值类型(如 `int`、`double`)之间的转换是常见的需求之一。这种转换通常用于处理用户输入的数据、解析配置文件或处理网络...

    Android string拼接

    本文将详细介绍如何在Android项目中利用`String`资源进行字符串拼接,包括基本原理、实现方法及注意事项。 #### 基本概念 1. **资源文件**:在Android中,我们可以将常量文本存储在资源文件中,通常这些资源文件...

    C#String.Format数字格式化

    ### C#中的String.Format方法与数字格式化 在C#编程语言中,`String.Format`是一种非常实用且灵活的方法,用于格式化字符串输出。通过该方法可以方便地控制数字、日期时间等数据类型的显示格式,这在实际开发过程中...

    各种string类型转换

    以下将详细解析从给定文件中提取出的关于“各种string类型转换”的知识点。 ### ANSI String与C风格字符串(char*)之间的转换 #### ANSI String转C风格字符串 ```cpp #include void __fastcall TForm1::Button1...

    Synthetic_Chinese_String_Dataset 中文识别数据集 50

    《Synthetic_Chinese_String_Dataset:中文识别数据集解析与应用》 Synthetic_Chinese_String_Dataset 是一个专为中文字符识别设计的数据集,由50个子集组成,每个子集包含大量的合成中文字符串图像。这个数据集是...

    计算string类型算式的结果

    5. **运算符的处理**:在Java中,我们可以使用`Integer.parseInt()`方法将字符串中的数字转换为整型,然后利用基本的数学运算符如`+`, `-`, `*`, `/`进行计算。 6. **异常处理**:在实现这个功能时,我们还需要考虑...

    c#中string转换成字节byte的处理方法

    在C#编程语言中,字符串(string)与字节(byte)之间的转换是常见的操作之一。这类转换在处理网络通信、文件读写等场景时尤为常见。本文将详细介绍如何在C#中实现从string到byte及byte[]的有效转换,并探讨其中涉及...

    Java中String类的详细文档打印版

    ### Java中String类详解 #### 引言 在Java编程语言中,`String`类扮演着至关重要的角色,它用于表示字符序列。本文档旨在深入探讨`String`类的特性和功能,帮助开发者更好地理解和应用这一核心类。 #### String类...

    convert string to integer

    如果字符串中包含非数字字符,它会忽略这些字符。如果字符串为空,`to_i` 返回 0。 接下来,我们看看其他编程语言中如何处理这个转换: 1. **Python**: 在 Python 中,可以使用 `int()` 函数进行转换。 ```...

    ORACLE中CLOB字段转String类型

    ### ORACLE中CLOB字段转String类型 在Oracle数据库中,`CLOB`(Character Large Object)是一种用于存储大量文本数据的数据类型。由于其能够存储非常大的文本块(最大可达4GB),因此常被用于存储文章、报告或任何...

Global site tag (gtag.js) - Google Analytics