C#操作 string的操作

为巩固自己的C#,为下一步要学习的复杂开发做准备,同时为了锻炼自己的编程思维,在此,我决定开设这个供自己,也供其他有一定基础的初学者练习的习题集。

下面这些题目都是我在学习中所遇到的很有价值的题目,我会完整的将题目面描述出来,并附上我的思路和代码。建议各位只看题面,并仔细思考自己会如何编写该程序。觉得自己想清楚后,然后再与我的思路相比对,如果发现自己还有不熟练的地方,就到电脑上编写一下程序。如果发现掌握熟练,则不必浪费时间,继续做下一个课题即可。

希望初学者能坚持,有更好的想法的人可以在评论中展示。

#不要求编写界面。|编写控制台文件即可。

请设计一款程序,其可输入不断输入句子,并将会输出其中所有数字,并以-分隔。

例如,

输入“2012年6月4日,中国股市下跌了64.89点........”

输出  2012-6-4-64.89

/*
            》》》》》确定你已经思考完毕    你可以将该段文字复制到你的程序中来支持你的编程
编程思路:为实现不断输入,最外层一个靠输入句子推动的死循环
                录入句子导入到符号数组a,并准备一个空的符号数组A。遍历该数组,规则如下

 
 

                     1.采用掐头去尾法保证不超限。

 

                     2. 每当遇到遇到数字,和两个数字之间的点时,提取到A。其他舍弃。

 

                     3.每当刚好从数字到文字时,提取一个‘-’到A。

 

              特别注意:注意输入句长为0或1的情况。

              注意最后一位若是'-',则不输出

 
 

*/

复制下列语句到mian函数中

while (true)
            {
                Console.WriteLine("请输入一个句子");
                string a = Console.ReadLine();//录入句子到符号数组。注意sring类本身就是一个从0到Length-1的符号数组
                string A="";//准备一个空符号数组
                if (a.Length == 0) { Console.Write("客官您设么也没输入啊,\a");  continue; }//输入零个则重来
                if (a.Length == 1 && char.IsDigit(a[0])) { Console.WriteLine(a); continue; }//只有一个则直接判断

                /*两个及以上则掐头去尾*/
                if(char.IsDigit(a[0])) A=A+a[0];
                for (int i=1; i < a.Length-1; i++)
                {
                    if (char.IsDigit(a[i]) == true || 
                        (a[i] == '.' && char.IsDigit(a[i - 1]) == true && char.IsDigit(a[i + 1]) == true)) 
                        A = A + a[i];//数字或数字中的点直接提取
                    else if (char.IsDigit(a[i - 1]) == true) A = A + '-';//从非数字到数字时,提取一个'-'
                }
                if (char.IsDigit(a[a.Length-1])) A = A + a[a.Length-1];

                if (A[A.Length - 1] == '-') A = A.Remove(A.Length - 1);//移除尾部'-'
                Console.WriteLine("其中包含的数字为");
                Console.WriteLine(A);
            }

思考:沿用此思路,设计一款一键从特定网页(或从.txt文件)读取出所有数字信息(补充功能,并能智能的发现这些数字意义)的插件。

猜你喜欢

转载自blog.csdn.net/qq_40938169/article/details/80206031