A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 不怕 中级黑马   /  2013-6-23 13:21  /  1234 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

小弟想要把字符串中的数字取出来,字符串如果有多个连续的数字取后面的
例如:BT-S13Cr110,TP110V 。

4 个回复

倒序浏览
本帖最后由 谭家泉 于 2013-6-23 15:50 编辑

//由于在 VS中复制代码过来,有的字符不能显示,所以,我直接贴图给你哈,望采纳,相互学习哈。
//算了,还是把代码弄上来吧,结合图片看哦

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace test2
{
    class Program
    {
        /// <summary>
        /// 小弟想要把字符串中的数字取出来,字符串如果有多个连续的数字取后面的。例如:BT-S13Cr110,TP110V 。
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            string str1 = "BT-S13Cr110";
            string str2 = "TP110V";
            Console.WriteLine(GetNumFromString(str1));
            Console.WriteLine(GetNumFromString(str2));

        }
        /// <summary>
        /// 传入字符串,取出字符串中的数字,如果有多个连续的数字,则取后面的。
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string GetNumFromString(string str)
        {
            char[] charC = str.ToCharArray();//把字符串存入数组
            string sTemp = "";
            for (int i = 0; i < charC.Length; i++)//循环判断第i个字符是不是数字
            {
                if (i != charC.Length - 1)//没到最后一个字符
                {
                    if (charC >= '0' && charC <= '9')//如果是数字
                    {
                        sTemp += charC;
                    }
                    else
                    {
                        sTemp = "";
                    }
                }
                else//到了最后一个字符
                {
                    if (charC >= '0' && charC <= '9')//如果是数字
                    {
                        sTemp += charC;
                    }
                }
            }
            return sTemp;
        }
    }
}

2-1.jpg (99.25 KB, 下载次数: 0)

1

1

2-2.jpg (18.55 KB, 下载次数: 0)

2

2

2-3.png (11.28 KB, 下载次数: 0)

3

3
回复 使用道具 举报 1 0
谭家泉 发表于 2013-6-23 15:49
//由于在 VS中复制代码过来,有的字符不能显示,所以,我直接贴图给你哈,望采纳,相互学习哈。
//算了,还 ...

2楼,你的代码错了吧,这代码里面有错的地方。
if (i != charC.Length - 1)//没到最后一个字符
                {
                    if (charC >= '0' && charC <= '9')//这里又是什么情况,怎么直接把数组名拿过来用了。??????
                    {
                        sTemp += charC;///////这里是什么情况???????
                    }
                    else
                    {
                        sTemp = "";
                    }
                }
                else//到了最后一个字符
                {
                    if (charC >= '0' && charC <= '9')/////还有这里???????
                    {
                        sTemp += charC;////////////以及这里?????
                    }
                }
复制代码都能复制错,。。。。。。。跟你的图片里的都不一样。
数组名能直接用?我忘了????{:soso_e132:}
回复 使用道具 举报
道法乾坤110 发表于 2013-6-23 16:46
2楼,你的代码错了吧,这代码里面有错的地方。
if (i != charC.Length - 1)//没到最后一个字符
          ...

不是复制错了。我复制的对的。在编辑器里发表后,就和复制的不一样了。以图片内容为准。谢谢
回复 使用道具 举报
数组名后带有索引参数。我写对了的。回复发表以后,就没有索引参数了。请以图片为准。谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马