2017-07-10 126 views
-1

**我想檢查一個句子是否在兩個單詞之間包含一個空字符。我是新的。所以,這個問題沒有太多的代碼示例。 **如何確定空字符不會在句子中給出錯誤

我用String.IsNullOrEmpty來確定字符串的空白。但是,我做錯了。

你能幫我解答嗎?

**編輯:我很抱歉我的錯誤。這個問題需要一個例子。例如;我寫到文本框中「它很好」它確定「It」和「is」之間的空字符以及「是」和「good」。所以,它給出了一個錯誤消息。但是,如果我寫一個單個字符,它不會給我錯誤消息。

PS:此錯誤消息表示標籤。如果它包含空字符,紅色標籤會顯示它自己。否則,綠色標籤顯示本身。**

編輯2

Public Static bool IsAllLetters(string s) 

{ foreach (char c in s) { if (!char.IsLetter(c) return false; return true; }

我確定字符串是否包含字母或沒有。如果它包含數字字符,則會發生錯誤。

無論如何,這解釋了爲什麼我使用IsAllLetter函數。

然後我用這個代碼示例。

Bool exp = IsAllLetters(explanation_text.Text); 

İf (exp == false){ // wrong data } 

Else { // correct data } 

那麼,哪些代碼我應該改變?或者我應該添加什麼代碼?

+2

什麼是空字符?我猜你不是指'0' –

+0

空字符不是空字符串相同。 – mjwills

+1

[C#的可能重複 - 「\ 0」等同於什麼?](https://stackoverflow.com/questions/2292850/c-sharp-what-does-0-equate-to) – mjwills

回答

0

你的代碼格式是有點粗糙,但它看起來像你的的foreach回報過早當字符串長度爲大於1

foreach (char c in s) 
    { if (!char.IsLetter(c) return false; return true; } 

上面只有永遠的代碼檢查的第一個字符更大串。相反,您希望IsAllLetters只在掃描完所有字符後才返回true。

public static bool IsAllLetters(string s) 
{ 
    foreach (char c in s) 
     if (!char.IsLetter(c)) return false; 

    return true; 
} 
+0

當我在句子中的兩個單詞之間留下黑色時,我不想獲得錯誤消息。 – raskolnikov

相關問題