精华内容
下载资源
问答
  • 提取字符串中的数字

    2019-07-03 17:07:56
    /// <summary>... /// 分离提取字符串中的数字子串 /// </summary> /// <param name="str">字符串</param> /// <param name="lstNum">数字子串</param> ...
            /// <summary>
            /// 分离提取字符串中的数字子串
            /// </summary>
            /// <param name="str">字符串</param>
            /// <param name="lstNum">数字子串</param>
            /// <returns></returns>
            public static int SplitNumber(string str, out List<string> lstNum)
            {//-3508.01,2065.02.--31..---
                lstNum = new List<string>();
                if (str == null || str == string.Empty) return -1;
    
                StringBuilder sb = new StringBuilder();
                
                bool point = false;
                bool substract = false;
                foreach (char c in str)
                {
                    if (c >= '0' && c <= '9')
                    {
                        sb.Append(c);
                    }
                    else if(c == '.')
                    {
                        if(point == false)
                        {
                            // 第一次出现.
                            if(sb.Length > 0)
                            {
                                sb.Append(c);
                                point = true;
                            }
                        }
                        else
                        {
                            // 第二次出现.
                            lstNum.Add(sb.ToString());
                            sb.Clear();
                            point = false;
                        }
                    }
                    else if(c == '-')
                    {
                        if (substract == false)
                        {
                            // 第一次出现-, sb前面不应该有东西
                            if (sb.Length > 0)
                            {
                                lstNum.Add(sb.ToString());
                                sb.Clear();
                            }
                            
                            sb.Append(c);
                            substract = true;
                        }
                        else
                        {
                            // 第二次出现.
                            if (sb.Length > 1)
                            {
                                lstNum.Add(sb.ToString());
                            }
                            sb.Clear();
                            substract = false;
                        }
                    }
                    else
                    {
                        lstNum.Add(sb.ToString());
                        point = false;
                        sb.Clear();
                    }
                }
    
                if(sb.Length > 0)
                {
                    lstNum.Add(sb.ToString());
                    sb.Clear();
                }
                
                return 0;
            }

     

    展开全文
  • 本篇文章给大家带来的内容是关于php如何提取字符串中的数字?php提取字符串中数字的方法总结(附代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。PHP提取字符串中的第一组数字...

    本篇文章给大家带来的内容是关于php如何提取字符串中的数字?php提取字符串中数字的方法总结(附代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    PHP提取字符串中的第一组数字<?php

    $str='acc123nmnm4545';

    if(preg_match('/\d+/',$str,$arr)){

    echo $arr[0];

    }

    ?>

    PHP提取字符串中的数字的其它方法

    第一种方法,使用正则表达式:function findNum($str=''){

    $str=trim($str);

    if(empty($str)){return '';}

    $reg='/(\d{3}(\.\d+)?)/is';//匹配数字的正则表达式

    preg_match_all($reg,$str,$result);

    if(is_array($result)&&!empty($result)&&!empty($result[1])&&!empty($result[1][0])){

    return $result[1][0];

    }

    return '';

    }

    第二种方法,使用in_array方法:function findNum($str=''){

    $str=trim($str);

    if(empty($str)){return '';}

    $temp=array('1','2','3','4','5','6','7','8','9','0');

    $result='';

    for($i=0;$i

    if(in_array($str[$i],$temp)){

    $result.=$str[$i];

    }

    }

    return $result;

    }

    第三种方法,使用is_numeric函数:function findNum($str=''){

    $str=trim($str);

    if(empty($str)){return '';}

    $result='';

    for($i=0;$i

    if(is_numeric($str[$i])){

    $result.=$str[$i];

    }

    }

    return $result;

    }

    例如://截取字符串中的数字2

    $str ='Q币2个';

    $result='';

    for($i=0;$i

    if(is_numeric($str[$i])){

    $result.=$str[$i];

    }

    }

    print_r($result);die;

    //输出结果 2

    相关推荐:

    展开全文
  • 主要介绍了Mysql中实现提取字符串中的数字的自定义函数分享,通常这种问题是在编程语言中实现,本文使用自定义SQL函数实现,需要的朋友可以参考下
  • 主要介绍了java基于正则提取字符串中的数字功能,可用于提取短信中的验证码,涉及java基于正则的字符串匹配相关操作技巧,需要的朋友可以参考下
  • 在Excel表格中提取字符串中的数字是我们经常会遇到的问题的,那么平时朋友们都用什么方法呢?今天分享三种方法,学会这三招,提取字符串中的数字不用愁。一.使用Ctrl+E快速智能填充快捷键:说明:使用这个快捷键需要...

    在Excel表格中提取字符串中的数字是我们经常会遇到的问题的,那么平时朋友们都用什么方法呢?今天分享三种方法,学会这三招,提取字符串中的数字不用愁。


    一.使用Ctrl+E快速智能填充快捷键:

    说明:

    使用这个快捷键需要Excel为07以上版本。

    操作步骤:

    首先在目标单元格手动提取一个数字,然后鼠标定位在目标单元格下方的单元格Ctrl+E就可以快速搞定。

    0886ed2493d67e7c1823506daa4ba29d.gif

    使用Ctrl+E快速智能填充快捷键


    二.使用Word强大通配符功能。

    说明:

    [0-9]可以所有数字,符括号内加上!表示所有非括号内内容。列如[!0-9] 代表的是所有非数字。

    操作步骤:

    在Excel表格中复制信息,到Word中粘贴;在Word中打开查找替换窗口,查找[!0-9]、替换为空白、勾选使用通配符、最后点击全部替换就可以快速搞定。

    5a630ec04f4dbfa941345d77da36ef64.gif

    使用Word强大通配符功能


    三.使用LOOKUP函数:

    说明:这五条说明非常重要!!!

    1.ROW(1:100)的功能是构造了一个由数字1、2、3、4……100构成的数组。

    2.注意用LEFT、RIGHT、MID等函数截取字符串中的数字为文本型数字,双负号“--”的功能文本型数字转化成数值型数字、此外双负号还可以将非数值的内容转化为错误值。

    3.LOOKUP函数在查询时会自动忽略查询区域的错误值。

    4.LOOKUP函数在查询时如果查找不到查找值,则返回查找区域中小于查找值的最大值。

    5.9E+307是Excel表格中最大的数值。


    1.数字在开头:

    操作方法:在目标单元格中输入下方的公式回车确定即可。

    =LOOKUP(9E+307,--RIGHT(字符串所在单元格,ROW(1:100)))
    52e9481eb23f9e99fcc73f57a9117ae1.gif

    数字在开头

    解析:

    用LEFT函数分别提取字符串最左面的1、2、3、4……个字符,本实例中提取的分别为“2”、“20”、“202”、“2020”、“2020年”……等等;然后根据上述的五条说明就可以实现提取数字在开头的字符串中的数字。


    2.数字在结尾:

    操作方法:在目标单元格中输入下方的公式回车确定即可。

    =LOOKUP(9E+307,--MID(字符串所在单元格,MATCH(1,MID(字符串所在单元格,ROW(1:100),1)^0,0),ROW(1:100)))
    d09a9229d74fd38175bc6b3d9d1cf866.gif

    数字在结尾

    解析:

    Right函数是提取字符串中右侧字符用的函数,其他解析参考提取数字在开头的字符串中的数字的解析。


    3.数字在中间:

    操作方法:在目标单元格中输入下方的公式Ctrl+Shift+Enter三键确定即可。

    =LOOKUP(9E+307,--MID(字符串所在单元格,MATCH(1,MID(字符串所在单元格,ROW(1:100),1)^0,0),ROW(1:100)))
    54254f9c012eed97f76a86b54a2d18e1.gif

    数字在中间

    解析:

    (1).MID函数的的功能是分别从第1位、第2位、第3位……提取字符串中的一个字符。例如,本实例中提取的分别为“今”、“年”、“是”……等等。最终,构成一个只包含一个字符的数组。

    (2).将(1)所得到的只包含一个字符的数字数字^0(0次方处理),如果截取的是数字的元素是文本型数字则返回数字1,否则返回错误值。最终,构成一个只包含数字1和错误值的数组。

    (3).使用MATCH返回(2)所述数组第一个数字1出现的位置。本实例中返回的位置是4,也就是数字2出现的位置。

    (4).使用MID函数和ROW函数分别在第一数字出现的位置开始截取字符串的1、2、3……个字符。本实例中返回的是2、20、202、2020……。

    (5).其他解析参考提取数字在开头的字符串中的数字的解析。


    总结,学会了这三种方法无论是批量提取数字,还是提取不同位置的数字你是不是都能够轻松搞定呢?

    展开全文
  • 多个由不确定字符隔开的单个数字该方法只适用于分离字符串中的单个数字字符,因此得到的结果也是个位数的数字。例如:1 5、2,5。1 9 2此时可以考虑将输入存入String变量,依次读取字符串中的每个字符,并判断是否...

    在Java中,如果输入一串由其他非数字字符隔开的数字,但却想要将其中的数字提取出来,网上已经给出多种解决方案,以下对这些方法及其对应的情况进行简单的总结,并提出自己的解决方案:

    1.多个由不确定字符隔开的单个数字

    该方法只适用于分离字符串中的单个数字字符,因此得到的结果也是个位数的数字。

    例如:

    1 5、2,5。1 9 2

    此时可以考虑将输入存入String变量,依次读取字符串中的每个字符,并判断是否为数字再将其转化为整型数据。而把单个char类型字符转化为整型的方法,网上已有非常常见的简单转化方法,即将目标数字字符与'0'字符相减,以下做出展示:

    import java.util.ArrayList;

    import java.util.Scanner;

    public class NumberCollector {

    public static void main(String[] args) {

    Scanner in = new Scanner(System.in);

    String charList = in.nextLine();

    ArrayList numList = new ArrayList<>();

    //遍历字符串中每个字符,将数字字符转化为整型数字

    for (int i = 0; i < charList.length(); i++) {

    if (Character.isDigit(charList.charAt(i))) {

    //通过将目标数字字符与'0'字符ASCII码相减,结果即为该数字本身的整型数字

    numList.add(charList.charAt(i) - '0');

    }

    }

    for (int each : numList) {

    System.out.println(each);

    }

    }

    }

    2.多个由特定字符隔开的任意数字

    该方法相比第一种方法,虽然能够筛选出非个位数的数字,但在操作前,需要明确分割数字的字符。

    若输入的字符串中,数字与数字之间,都是被唯一确定的字符隔开,例如:

    5 4 6 12 100 3

    1,2,51,12,6

    此时可以采用网上给出的一种普遍处理方法,使用split分割字符串再使用Integer中的ParseInt方法将其进行转换:

    import java.util.ArrayList;

    import java.util.Scanner;

    public class NumberCollector {

    public static void main(String[] args) {

    Scanner in = new Scanner(System.in);

    String[] numStr = in.nextLine().split(" "); //此处以空格字符分割为例

    ArrayList numList = new ArrayList<>();

    //遍历分割后的字符串数组并依次转型为整型

    for (int i = 0; i < numStr.length; i++) {

    numList.add(Integer.parseInt(numStr[i]));

    }

    for (int each : numList) {

    System.out.println(each);

    }

    }

    }

    3.由任意字符隔开的任意数字

    由于在开发中,常会遇到奇怪刁钻的情况,在这里我提出一些个人的想法与应对方案,如题,若遇到此种情况,例如输入:

    5 10,,,103xyz50 a.10

    解决思路:若要提取其中的数字转化为整型数字,可以考虑遍历字符串中每个字符,若该字符为数字,则往预备区里存入该数字字符,当读到非数字字符时,即可认为预备区里已经有一个完整的数字字符串,此时再考虑将其转化为整型数字。

    以下给出实现代码:

    import java.util.ArrayList;

    import java.util.Scanner;

    public class NumberCollector {

    public static void main(String[] args) {

    Scanner in = new Scanner(System.in);

    String charList = in.nextLine();

    in.close();

    String integer = ""; //作为数字字符串的预备区

    ArrayList numList = new ArrayList<>();

    for (int i = 0; i < charList.length(); i++) {

    //遍历字符串中每个字符时,若该字符为数字字符,则存入预备区

    if (Character.isDigit(charList.charAt(i))) {

    integer += charList.charAt(i);

    //避免字符串最后一位为数字而遗漏收集的情况

    if (i == charList.length() - 1) {

    numList.add(Integer.parseInt(integer));

    }

    }else if (!integer.isEmpty()) { //读取到非数字字符,并且检查预备区是否为空

    numList.add(Integer.parseInt(integer));

    integer = "";

    }

    }

    //输出收集到的整型数字

    for (int each : numList) {

    System.out.println(each);

    }

    }

    }

    针对上面给出的输入样例,可得输出:

    5

    10

    103

    50

    10

    这种方法同时还可以适用于第一,第二种方法所针对的情况,但如果问题情况非常简单时,当然还是第一,第二种方法省时省力。

    以上是自己根据平时总结的一些网络上以及个人的方法和技巧,若有疏漏或更好的建议,非常欢迎对此作出评论或提出意见,这样对我也会有很大的帮助!

    展开全文
  • ## ^ 匹配字符串的开始。## $ 匹配字符串的结尾。## \b 匹配一个单词边界。## \d 匹配任意数字。## \D 匹配任意非数字字符。## x? 匹配一个可选 x 字符 (换言之,它匹配 1 次或者 0 次 x 字符)。## x* 匹配0次...
  • PHP提取字符串中的数字

    万次阅读 2018-08-02 11:00:49
      &lt;?... $str='acc123nmnm4545';  if(preg_match('/\d+/',$str,$arr)){  echo $arr[0];...PHP提取字符串中的数字的其它方法   第一种方法,使用正则表达式:   function findNum($str=''){ $str=tr...
  • 关于提取字符串中的数字,总结了8种情况,学会这8种提取方法,再也不用担心提取字符串的问题了,今天分享第一种案例这是案例的特点是数字在右边,而且是连续的,根据这个特点可以第一时间联想到RIGHT函数,公式为:=...
  • php提取字符串中的数字(三种方法) 2016-06-20 20:28:58 峰尚 1,755 次 0 如何使用PHP将字符串中的数字提取出来的功能做了一个小总结,总结三种方法如下: 第一种方法,使用正则表达式: 12345678910 ...
  • 1.提取字符串中的数字$ echo 'dsFUs34tg*fs5a%8ar%$#@' |awk -F "" '{for(i=1;i<=NF;i++){if ($i ~ /[[:digit:]]/){str=$istr1=(str1 str)}}print str1}'输出3458或$ echo 'dsFUs34tg*fs5a%8ar%$#@' |awk -F "" '...
  • 在Excel表格中提取字符串中的数字是我们经常会遇到的问题的,那么平时朋友们都用什么方法呢?今天分享三种方法,学会这三招,提取字符串中的数字不用愁。一.使用Ctrl+E快速智能填充快捷键:说明:使用这个快捷键需要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,217
精华内容 886
关键字:

提取字符串中的数字