C# 之实现输入一个字母加数字组合输出前面不变最后一位加1 您所在的位置:网站首页 如何在数字前面加字母和数字组合 C# 之实现输入一个字母加数字组合输出前面不变最后一位加1

C# 之实现输入一个字母加数字组合输出前面不变最后一位加1

2024-07-10 07:09| 来源: 网络整理| 查看: 265

面试遇到的一个问题,实现例如: 输入ABCD001输出ABCD002 输入AAAA1234输出AAAA1235 … 由于时间关系,加上自己学习的不够扎实,没有第一时间想出来,当时想的是分开输入在用Join()连接,这样是多了一步的用户操作,后来回来想到利用substring 与remove 加 join联合实现,具体代码如下:

static void Main(string[] args) { Console.Write("请输入一组字母数字组合:"); string Str = Console.ReadLine(); String newStr = Str.Substring(Str.Length - 1);//选取我们输入英文加数字的最后一位 int newStr1 = int.Parse(newStr);//进行类型转换,以便于+1计算 int newStr2 = newStr1 + 1; Str = Str.Remove(Str.Length - 1, 1);//移除掉最后一位数字 string endStr = string.Join("", Str, newStr2);//连接移除最后一位后的Str与选取过最后一位进行+1了的newStr2 Console.WriteLine("输出的结果为:"+ endStr); Console.ReadKey(); }

输出结果为: 在这里插入图片描述 在这里插入图片描述 当然这种方法不够完善,如果输入的最后一位不是数字则会进行报错!!!!

通过提问,在这里感谢“weixin_45841714”大佬得解答,得到了判断输入的字母数字组合最后一位是否为数字的答案。 改善后的解决方法如下:

static void Main(string[] args) { while (true) { Console.WriteLine("请输入一组字母数字组合:"); string Str = Console.ReadLine(); string newStr = Str.Substring(Str.Length - 1); if (Str.All(x => newStr.Contains(x))) //大佬提供的判断方法。暂时还没有理解这个函数的意思,如果你知道可以留个言,谢谢! { Console.Write("类型不正确,"); continue; } else { int newStr1 = int.Parse(newStr); int newStr2 = newStr1 + 1; Str = Str.Remove(Str.Length - 1, 1); string endstr = string.Join("", Str, newStr2); Console.WriteLine("输出的结果为:" + endstr); //break;根据情况看是否需要中断 } Console.ReadKey(); } }

结果如下: 在这里插入图片描述

-----------2024.03.28 补充说明----------

多年之后对问题进行补充,发现之前提供的方法的含义是遍历所有元素,然后看每个元素是否都等于A,这样会有一个弊端,对相同的字母组成的字符串能适用。但是对不同的就不行了,所以我对方法进行进一步的优化。 方法一:大力出奇迹,穷举法,将最后一位判断是等于0,1,2,3,4,5,6,7,8,9,需要注意的是当等于9的时候会变成10。

方法二:我们使用正则表达式判断最后一位是否为数字即可

static void Main(string[] args) { while (true) { Console.WriteLine("请输入一组字母数字组合:"); string Str = Console.ReadLine(); string newStr = Str.Substring(Str.Length - 1); if (Regex.IsMatch(newStr, @"^\d+$")) //正则表达式判断是否为整数 { Console.Write("类型不正确,"); continue; } else { int newStr1 = int.Parse(newStr); int newStr2 = newStr1 + 1; Str = Str.Remove(Str.Length - 1, 1); string endstr = string.Join("", Str, newStr2); Console.WriteLine("输出的结果为:" + endstr); //break;根据情况看是否需要中断 } Console.ReadKey(); } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有