2014-03-26 71 views
0

嗨,我是一個初學C#程序員。C#刪除空格和hyphe

需要幫助寫入小代碼程序控制臺邀請用戶輸入他們的電話號碼不使用空格和連字符( - )做驗證,如果用戶不尊重這些條件,則顯示錯誤消息。並創建一個循環,重新要求用戶輸入相同的信息以再次嘗試。

Console.WriteLine("Please enter your phone no.: \t"); 
      string n = Console.ReadLine(); 
      char[] delimiters = new char[] { ' ', '-' }; 
      string textBox = Convert.ToString(n); 
      string[] numtel = textBox.Split(delimiters); 
      bool test = false; 
+0

什麼一點你需要 – Lloyd

+0

幫助你可以讓空間/ - 並在提交時將它們刪除... –

回答

0

試試這個:

var compareStrings = new [] { "-", " " }; 
string phoneNo=string.Empty; 
do 
{ 
    Console.WriteLine("enter phone number without spaces and hyphens "); 
    phoneNo = Console.ReadLine(); 
}while(!(compareStrings.Any((c=>phoneNo.Contains(c))))); 
1

你需要一個while循環:

char[] delimiters = new char[] { ' ', '-' }; 
string n; 
while(true) 
{ 
    Console.WriteLine("Please enter your phone no.: \t"); 
    n = Console.ReadLine(); 

    if(n.Length > 0 && !n.Any(delimiters.Contains)) break; 
    else Console.WriteLine("Invalid value, try again."); 
} 
+0

可能想要將其他條件顯示出錯信息。 – CathalMF

1

這是你的任務的普通解決方案:

bool isValid = false; 

while(!isValid){ 
    Console.WriteLine("Please enter your phone no.: \t"); 
    string phone = Console.ReadLine(); 
    isValid = !string.isNullOrWhiteSpace(phone) 
      && phone.s.IndexOfAny(new[] { '-', ' ' }) < 0; 
    if (!isValid) 
    Console.WriteLine("No spaces or '-' allowed"); 
} 

然而,這是一個貧窮的驗證電話號碼的方法。人們用「(」和其他可能的字符

另一種方法是使用正則表達式,爲example「」:?

isValid = !string.isNullOrWhiteSpace(phone) 
      && Regex.IsMatch(phone, @"\(?\d{3}\)?-? *\d{3}-? *-?\d{4}");