2017-04-23 31 views
-5

我有一个代码,其中第一个和最后一个名称字符串必须完全是一个名称,中间名必须完全为零或一个名称..你们在这里的任何人有任何想法如何做到这一点?先谢谢你!一个字符串必须完全是一个名称,而另一个必须完全是零或一个名称

public enum Gendertype { Male, Female }; 
public class Player 
{ 
    public string FirstName { get; set; } 
    public string MiddleName { get; set; } 
    public string LastName { get; set; } 
    public DateTime DateOfBirth { get; set; } 
    public string Nationality { get; set; } 
    public string ShortNationality { get; set; } 
    public Gendertype Gender { get; set; } 

    public Player(string fn, string mn, string ln, DateTime dob, string n, string sn, Gendertype g) 
    { 
     FirstName = fn; 
     MiddleName = mn; 
     LastName = ln; 
     DateOfBirth = dob; 
     Nationality = n; 
     ShortNationality = sn; 
     Gender = g; 
    } 

} 
class Program 
{ 
    static void Main() 
    { 
     Player person1 = new Player("Rafael" + "\n", "" + "\n", "Nadal" + "\n", new DateTime(1986, 06, 03), "Spanish" + "\n", "ES" + "\n", Gendertype.Male); 
     Console.WriteLine("Player 1: \n First name = {0} Middle name = {1 } Last name = {2} Date of birth = {3:yyyy/MM/dd} \n Nationality = {4} Short name nationality = {5} Gender = {6}", person1.FirstName, person1.MiddleName, person1.LastName, person1.DateOfBirth, person1.Nationality, person1.ShortNationality, person1.Gender); 
     //Nedenstående aldersudregner er taget fra Bob Tabors C# kurser 
     DateTime DateOfBirth = DateTime.Parse("1986/06/03"); 
     TimeSpan myAge = DateTime.Now.Subtract(DateOfBirth); 
     Console.WriteLine(" Age = " + myAge.TotalDays/365 + "\n" + "\n"); 
+0

目前还不清楚你在问什么。你只是想检查一个字符串是否有值?像'string.IsNullOrEmpty()'? – David

+2

你的意思是“一个名字”和“零或一个名字”? –

+0

你的意思是'FirstName'是否包含一个单词? –

回答

0

FirstNameLastName那么可以拆分上' '并看到计数为1

bool valid = fn.Split(' ').Length == 1 

而对于MiddleName让它也为空或空:

bool valid = string.InNullOrEmpty(mn) || mn.Split(' ').Length == 1 

如果您认为空格在开头或结尾滑入其中一个名称,则可以添加.Trim

bool validFN = fn.Trim().Split(' ').Length == 1 
bool validMN = string.InNullOrEmpty(mn) || mn.Trim().Split(' ').Length == 1 
+2

名称中带空格的人不允许使用此应用程序? – David

+0

这是根据OP,看到评论 –

0

使用String.Split此:

var names = "Rafael Nadal".Split(); 
foreName = names[0]; 
if(names.Length == 2) 
{ 
    surName = names[1]; 
} 
else if (names.Length == 3) 
{ 
    surName = names[2]; 
    middleName = names[1]; 
} 
else 
    throw new ArgumetException("Whrong number of arguments"); 

但是,如果你输入其他字符分隔,例如逗号,你必须使用的Split期望一个字符作为参数的重载。

相关问题