C# 如何限制字符串中可以包含的字符数?

C# 如何限制字符串中可以包含的字符数?,c#,string,C#,String,我正在写一个程序来限制输出中可以包含的字符数。本质上是一个学生id赋值器,我现在知道如何只计算字符串中特定数量的字符。到目前为止,我的代码是这样的 string firstname, middleinitial, lastname,yearofentry; int year; Console.WriteLine("Please enter your first name."); firstname = Console.ReadLine();

我正在写一个程序来限制输出中可以包含的字符数。本质上是一个学生id赋值器,我现在知道如何只计算字符串中特定数量的字符。到目前为止,我的代码是这样的

 string firstname, middleinitial, lastname,yearofentry;
        int year;
        Console.WriteLine("Please enter your first name.");
        firstname = Console.ReadLine();

        Console.WriteLine("Please enter your middle initial.");
        middleinitial = Console.ReadLine();

        Console.WriteLine("Please enter your last name.");
        lastname = Console.ReadLine();

        Console.WriteLine("Please enter your year of entry.");
        yearofentry = Console.ReadLine();
        year = (Convert.ToInt32(yearofentry)-2000);



        Console.WriteLine(firstname +middleinitial+ lastname + year + "@mail.edu");
    }
}

}

只需读入完整字符串,TrimStart()然后使用Substring()获取所需的部分

Console.WriteLine("Please enter your last name.");
lastname = Console.ReadLine().TrimStart();
var substrLen = Math.Min(lastname.Length, 7);
lastname = lastname.Substring(0, substrLen);
在上一次WriteLine()调用中,您可以使用.ToString(“00”)获取所需的2位数

Console.WriteLine(firstname + middleinitial + lastname + year.ToString("00") + "@mail.edu");

您应该检查您的用户输入的值是否介于2000和2099之间。

您要添加的具体限制是什么?请参见,我需要确保仅使用姓氏的前7个字符,并且一年中的最后两个字符使用姓氏的前7个字符?那似乎。。。有点奇怪。举个例子,我的姓氏有9个字母长,真的需要最后2个字母才能起作用对于你想要实现的目标,有很多不同的东西:1。限制可以输入的字符数(需要一些直接的输入控制,例如具有长度限制的文本框);2.接受任何输入,但放弃部分输入(如@reggae所示);3.限制您编写的字符串类中可以包含的字符数(加上以某种方式处理过多的输入)——这就是您的标题所建议的;4.接受并存储所有输入,但限制输出(例如格式化表格打印输出)。我觉得您需要4。我认为substring()在字符串长度对于请求的子字符串来说太短时会引发异常,cf。因此,子字符串的长度必须限制为输入长度。