`

字符串中的提取最长的数字串(只考虑字母与数字)

    博客分类:
  • Java
阅读更多
(第一版)最原始的实现方式:

import java.util.HashMap;
import java.util.Map;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		String s = "sdfdsfkuffsdf4353453cgcbcvbcb23ddccvd6777u234424234234fgrrter3345435498549854988895985";
		getString(s);

	}

	public static void getString(String str) {

		StringBuffer strbuf = new StringBuffer();
		int len = str.length();
		Map map = new HashMap();
		int j = 0;
		int x = 0;
		int max = 0;
		int temp = 0;
		Map map2 = new HashMap();
		for (int i = 0; i < len; i++) {
			char c = str.charAt(i);
			// 判断是否是数字
			if (c >= '0' && c <= '9') {
				++x;
				map.put(j, strbuf.append(c));
				System.out.println(j+":"+strbuf.toString()+":"+x);
			} else {
				if (x > 0) {
					temp = x;
					if (max < temp) {
						max = temp;
						map2.put("max", max);
						map2.put(max, j);
					}
					System.out.println(j + " - " + strbuf.toString());
					++j;
					strbuf = new StringBuffer();
					x = 0;
				} 
			}
			//如最后为数字
			if(i == len-1 && x>0){
				temp = x;
				if (max < temp) {
					max = temp;
					map2.put("max", max);
					map2.put(max, j);
				}
				System.out.println(j + " - " + strbuf.toString());
				++j;
				strbuf = new StringBuffer();
				x = 0;
			}
		}
		Integer ig = (Integer) map2.get(map2.get("max"));
		System.out.println("max: " + map2.get("max") + ",vaile: " + map.get(ig));

	}
}


(第二版)优化版本:
public static String getNumByString(String str) {

	if (null == str || "".equals(str)) {
		return null;
	}
	Map<Integer, String> ics = new HashMap<Integer, String>();
	StringBuilder strbur = new StringBuilder();
	char[] chars = str.toCharArray();
	int len = chars.length;
	int x = 0;
	int y = 0;
	int max = 0;
	int indexJ = 0;
	for (int i = 0; i < len; i++) {
		if (Character.isDigit(chars[i])) {
			++x;
			ics.put(y, strbur.append(chars[i]).toString());
		} else {
			if (0 < x) {
				if (max < x) {
					max = x;
					indexJ = y;
				}
				++y;
				strbur = new StringBuilder();
				x = 0;
			}
		}
		if (i == len - 1 && x > 0) {
			if (max < x) {
				max = x;
				indexJ = y;
			}
		}

	}
	return ics.get(indexJ);
}


第三版:

public static String getNumByString2(String str){
	if (null == str || "".equals(str)) {
		return null;
	}
	String [] t = str.split("[\\D]");	
	int max = 0;
	String maxNumStr = null;
	for(String b : t){
		if(null != b && !"".equals(b) && max < b.length()){
			max = b.length();
			maxNumStr = b;
		}			
	}
	return maxNumStr;
}
分享到:
评论

相关推荐

    VBA示例之 从字符串提取纯数字

    这个简单的VBA脚本可以轻松地扩展以适应更复杂的需求,例如处理包含小数点或负号的数字,或者从多行文本中提取数字。通过学习和理解这些基础函数,你可以在VBA中处理各种字符串操作,提升办公效率。

    Excel用函数在Excel中从文本字符串提取数字[定义].pdf

    Excel 函数在 Excel 中从文本字符串提取数字 Excel 函数在 Excel 中从文本字符串提取数字是指使用 Excel 函数从文本字符串中提取数字的过程。这个过程可以分解为四个步骤:将字母数字字符串分解为单独的字符、确定...

    [最新知识]Excel从字母数字字符串中提取数字.doc

    Excel从字母数字字符串中提取数字 在Excel中,从字母数字字符串中提取数字是一个常见的问题。为了解决这个问题,需要使用多个Excel函数,包括MID、ISNUMBER、MATCH和COUNT等。下面将详细介绍如何使用这些函数来提取...

    汇编统计字符串数字及字符个数

    这个任务要求我们编写一段程序,能够区分字符串中的字母和数字,并将它们的个数分别存储到预定义的变量中。以下是对这个任务的详细解析: 1. **字符串定义**: 在汇编语言中,字符串通常以ASCII码表示。可以使用`...

    delphi实现数字和字母组合的字符串数字部分不断自加

    1. **字符串处理**:首先,我们需要从原始字符串中提取数字部分。这可以通过遍历字符串并对每个字符进行检查完成。我们可以利用`TryStrToInt`函数尝试将字符转换为整数,如果成功则加入到数字串中。 2. **数字自增*...

    如何提取字母数字字符串的数字部分.pdf

    如何提取字母数字字符串的数字部分 本文将详细介绍如何提取字母数字字符串的数字部分,通过使用MID、ISNUMBER、MATCH和COUNT...这项技术可以帮助用户快速地提取字母数字字符串中的数字部分,并将其应用于实际工作中。

    获取同时含有数字、大写字母、小写字母的随机字符串

    在给定的标题和描述中,我们关注的是如何创建一个包含数字、大写字母和小写字母的随机字符串,且长度可指定。这样的字符串通常具有较高的复杂度,能提供更好的安全性。 生成这种随机字符串的方法通常涉及编程语言中...

    获取字符串中的数字(两种方法)

    例如,在一个包含混合字母和数字的字符串中,我们可能只对其中的数字感兴趣。本篇文章将介绍两种在C#中实现这一功能的方法。 ### 二、第一种方法:遍历字符 #### 1. 方法原理 第一种方法是通过遍历字符串中的每个...

    Excel用函数在Excel中从文本字符串提取数字.pdf

    Excel 用函数在 Excel 中从文本字符串提取数字 在 Excel 中,从文本字符串提取数字是一个常见的问题。使用 Excel 的函数,可以轻松地从文本字符串中提取数字。本文将详细介绍如何使用 Excel 函数从文本字符串中提取...

    sql server 提取汉字/数字/字母的方法 demo

    在SQL Server中,经常需要处理字符串,比如提取其中的特定字符集(如汉字、数字或英文字母)。本文将介绍如何使用SQL Server编写函数来实现这些功能,并提供示例代码帮助理解。 #### 一、提取数字的方法 在SQL ...

    如何提取字母数字字符串的数字部分.docx

    在处理字母数字字符串时,经常需要提取其中的数字部分,例如从字符串“abc123”中提取数字“123”。本文将介绍如何使用Excel公式来实现此功能。 步骤 1: 将字母数字字符串分解为单独的字符 使用MID函数可以将字母...

    VBA功能之 从n位开始取出字符串中的汉字、英文字母、数字.zip

    '示例:=myget(srg,1,3)'从第 3 位开始取出中文字符' =myget(srg,2)'从第 1 位开始取出英文字母,第 3个参数省略默认为 1' =myget(srg,,5)'从第 5 位开始取出数字,第 2个参数省略默认为 0' =myget(srg) '第 2、3 个...

    EXCEL取出字符串中的中文、英文字母、数字自定义函数.rar

    标题提到的"EXCEL取出字符串中的中文、英文字母、数字自定义函数.rar"指的是如何使用Excel内置的或自定义的函数来从字符串中提取特定类型的字符,如中文字符、英文字母和数字。在这个压缩包中,包含了一个名为...

    PB判断字符串是否有中文

    3. **扩展与优化**:虽然这种方法只检查了字符串的第一个字符,但在实际应用中可能需要遍历整个字符串的所有字符来进行判断。这可以通过循环结构实现,确保每个字符都被正确地检查。 #### 方法二:比较宽字符长度与...

    字符串任意提取.rar

    标题“字符串任意提取.rar”和描述中提到的“提取任意字符串,例如所有汉字,所有数字,所有字母,所有大写字母、小写字母,等等”,这涉及到的是字符串操作中的过滤和匹配技术。以下是对这些知识点的详细说明: 1....

    C语言中常用的字符串处理函数

    此函数与`_strupr`相反,将`string`中的所有大写字母转换为小写字母,并返回转换后的字符串的指针。 12. **`strchr`**: 函数原型为`char* strchr(const char* string, int c);`。此函数在`string`中查找第一次出现...

    Excel混合字符串中提取汉字[文].pdf

    Excel 混合字符串中提取汉字、数字和非汉字部分的方法总结 在 Excel 中,经常需要从混合字符串中提取汉字、数字和非汉字部分。这篇文章总结了提取汉字、数字和非汉字部分的方法。 一、提取汉字 可以使用小刀公式=...

    python实现生成字符串大小写字母和数字的各种组合

    1 输出大写字母、小写字母、大小写字母、数字、大小写字母和数字 1.1输出小写:找到小写a(97)到z(122)的的ASCII码,然后转义为字母 lower = “” for i in range(97,123):  lower += chr(i) print(‘%s’ % ...

    php-正则将字符串中的字母数字和中文分割.doc

    具体到本文件所描述的问题,它涉及到如何通过正则表达式将字符串中的字母数字和中文字符进行分割。在提供的例子中,字符串为 "php如何将字符串中322的字母数字sf f45d和中文_分割?",所使用的正则表达式为 `preg_...

    java字母数字混搭字符串排序.docx

    根据提供的文档标题“java字母数字混搭字符串排序”及其描述,本文将深入探讨如何在Java中实现对含有字母与数字混合的字符串进行排序的方法。这一技术对于处理包含字母和数字混合的数据集尤其有用,比如在KPI(关键...

Global site tag (gtag.js) - Google Analytics