2017-04-23 33 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期望一個字符作爲參數的重載。

相關問題