提取字符串中的数字

问题描述

Stringstr1="123gege34";String[]wa=str1.split("[a-zA-Z,]+");for(inti=0;i<wa.length;i++){str1=wa[i];System.out.println("数字"+wa[i]);}

这样弄总是感觉不大好,有啥更好的写发吗?

解决方案

解决方案二:
这样可以吗呵呵Stringtemp="22235aa33ee3399cceee0088kk";System.out.println(temp.replaceAll("[a-zA-Z]+",""));

解决方案三:
顶ls的。。lz的方法已经很方便了
解决方案四:
正则\d*匹配每group一个就append到一个StringBuffer里
解决方案五:
zhengjie
解决方案六:
for(inti=0;i<str1.length();i++){charc=str1.charAt(i);if(c<=57&&c>=48){//48和57为数字的asc码System.out.println("num"+c);}}不知道是不是你要的
解决方案七:
System.out.println(str1.replaceAll("\d",""));//取出所有字母System.out.println(str1.replaceAll("[^0-9]",""));//取出所有数字
解决方案八:
引用5楼wang514636638的回复:

for(inti=0;i<str1.length();i++){charc=str1.charAt(i);if(c<=57&&c>=48){//48和57为数字的asc码 System.out.println("num"+c);}}不知道是不是你要的

明显不对。。。。人家要连续的数字。。你这个自己打印出来看看
解决方案九:
publicclassRegexTest{publicstaticvoidmain(String[]args){Stringstr="123gege34";Patternpattern=Pattern.compile("\d+");Matcherm=pattern.matcher(str);while(m.find())System.out.println(m.group());}}

解决方案十:
LZ的字符串中除了数字和字母是否还可能有特殊字符。
解决方案十一:
引用3楼viszl的回复:

正则\d*匹配每group一个就append到一个StringBuffer里

\d*匹配数字
解决方案十二:
Strings="123kdk*&&^o473";//把不是数字的都替换成空s=s.replaceAll("\D*","");System.out.println(s);

解决方案十三:
[code=Java综合一下:两种方案:Stringtemp="22235aa33ee3399cceee0088kk";System.out.println(temp.replaceAll("[a-zA-Z]+",""));//将字符串中所有字母用空格替代for(inti=0;i<str1.length();i++){charc=str1.charAt(i);if(c<=57&&c>=48){//循环找出这个范围内的数,48和57为数字的asc码System.out.println("num"+c);}}][/code]
解决方案十四:
引用6楼tfsict2008的回复:

   System.out.println(str1.replaceAll("\d",""));//取出所有字母   System.out.println(str1.replaceAll("[^0-9]",""));//取出所有数字

System.out.println(str1.replaceAll("\D",""));//取出所有数字
解决方案十五:
楼主写法本来是不错的容易读你改了可能就降低可读性!现在是可能性很重要很重要的!为这东西花费时间经历不值得,书写习惯和大家一致就好了!这样别人才好维护你的代码!呵呵把经历花在算法或技巧方面比较好!

时间: 2024-12-05 13:08:56

提取字符串中的数字的相关文章

Mysql中实现提取字符串中的数字的自定义函数分享_Mysql

因需要在mysql的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的mysql函数,可以有效的从字符串中提取出数字. 该mysql提取出字符串中的数字函数如下: 复制代码 代码如下: CREATE FUNCTION GetNum (Varstring varchar(50)) RETURNS varchar(30) BEGIN DECLARE v_length INT DEFAULT 0; DECLARE v_Tmp varchar(50) default ''; se

php正则表达式提取字符串中的数字例子

今天开发采集器,用到从字符串里取数字,后来想到了以下用正则表达式来取. 用正则  代码如下 复制代码 $str = ereg_replace('[^0-9]',",$str);和 $str = preg_replace( '/[^\d]/ ', ' ',$str); 例子  代码如下 复制代码 function findNum($str=''){ $str=trim($str); if(empty($str)){return '';} $reg='/(\d{3}(\.\d+)?)/is';//匹

C#中如何提取字符串中的数字

问题描述 哪位大哥教教我,像如下字符串"47.64483,-122.141197"如何将两个数字提取出来? 解决方案 解决方案二:"47.64483,-122.141197".Split("|")解决方案三:引用1楼chinajiyong的回复: "47.64483,-122.141197".Split("|") "47.64483,-122.141197".Split(",&

PHP提取字符串中的数字正则表达式

在网上搜索到这个测试一下发现还可以,但是如果字符长度不d{4} 不定长就不行了  代码如下 复制代码 function findNum($str=''){  if(empty($str)){return '';}  $reg='/(\d{4}(\.\d+)?)/is';//匹配数字的正则表达式  preg_match_all($reg,$str,$result);  if(is_array($result)&&!empty($result)&&!empty($result[

ASP.NET利用正则表达式提取字符串中的数字

一言不足以毕之,请LOOK代码:               string text = " 订单5|本次付款:4783|本单结清,";             string pat = @"(\d+)";             Regex r = new Regex(pat, RegexOptions.IgnoreCase);             Match m = r.Match(text);             int matchCount = 0;

括号-提取字符串中多位数字

问题描述 提取字符串中多位数字 我只会提取单个字符串,多个字符就不行了 2(10)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 目标把取出括号里面的数字 例如10需要有通用型 解决方案 字符串替换 String str =" 2(10)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)"; String result = str.replace("(","").replace.(")",

c++字符串-C++中如何将输入的字符串中的数字提取出来做加减法

问题描述 C++中如何将输入的字符串中的数字提取出来做加减法 char shu[100]; scanf("%s",shu); int sum; sum+=字符串中的数字 这个应该怎样完成?当我提取了字符串中的数字后,但发现字符串中的数字是以ASIii的形式运算的,这该怎么办? 解决方案 #include "stdafx.h" #include <string.h> void main() { char shu[100]; scanf("%s&q

c++-如何提取字符串中的字符型数字

问题描述 如何提取字符串中的字符型数字 char a[100]="delete N";//N为数字 要想把里面的N提取出来,因为N是字符串里的数字,所以应该是字符型,怎么把它转化 为整型(int)呢? 求解答! 解决方案 仅供参考 int getNum(char a[]) { int i =0,num =0; while(a[i] != '') { if( a[i] >= '0' && a[i] <= '9') num = num *10 +a[i] - '

字符串截取-C# 提取字符串中“所有”满足格式的字符串,怎么提取?

问题描述 C# 提取字符串中"所有"满足格式的字符串,怎么提取? 小弟正在做一个读取支付宝的订单的软件,读取订单不是利用官方的API,是从网页上抓取的, 每行订单信息都抓成了字符串,但是遇到了一个问题,就是如何把字符串分解了,然后保存到数据库, 值得庆幸的是,每个需要提取出来的数据 前 和后 都有规律 我一开始想的是 Regex.Match(str, "(?<= ).*?(?= )").Value; 用这个函数截取 和 之间的内容,但是只能截取到一个, 我想的