黑马程序员技术交流社区

标题: 求大神指导。 [打印本页]

作者: 不怕    时间: 2013-6-23 13:21
标题: 求大神指导。
小弟想要把字符串中的数字取出来,字符串如果有多个连续的数字取后面的
例如:BT-S13Cr110,TP110V 。
作者: 谭家泉    时间: 2013-6-23 15:49
本帖最后由 谭家泉 于 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

作者: 道法乾坤110    时间: 2013-6-23 16:46
谭家泉 发表于 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:}

作者: 谭家泉    时间: 2013-6-23 21:59
道法乾坤110 发表于 2013-6-23 16:46
2楼,你的代码错了吧,这代码里面有错的地方。
if (i != charC.Length - 1)//没到最后一个字符
          ...

不是复制错了。我复制的对的。在编辑器里发表后,就和复制的不一样了。以图片内容为准。谢谢
作者: 谭家泉    时间: 2013-6-23 22:03
数组名后带有索引参数。我写对了的。回复发表以后,就没有索引参数了。请以图片为准。谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2