2013-02-01 192 views
-5

我是C#noob,我有這個任務。 我有TextBox,用戶需要輸入13位數字。 我需要檢查的是用戶正確填充該文本框。只有數字可以接受。c#代碼檢查是字符串只包含數字

之後,我需要檢查是最後一次輸入(第13)號碼與我從其他函數獲得的int64變量相等。

謝謝!

+4

我們都有我們需要做的事情。它會幫助我們瞭解您嘗試過的代碼。堆棧溢出通常不是'爲我工作'的地方。如果你來到這裏並且毫不費力地提出問題,你很可能會得到一個毫不費力的答案。 –

+0

查看int.TryParse和string.ToCharArray.Last。 – ken

+0

@GeorgeStocker這個問題與你直接關閉並提及meta的其他問題類似,但你會發現,即使問題太糟糕,這裏的某個人願意嘗試幫助他,但新用戶沒有覺得我們不習慣他們,你不是目標:) – Aristos

回答

1

我不會告訴你在哪裏放這個代碼,只是代碼的條件。請嘗試做一些事情,然後提出一個問題,告訴你所困擾的是什麼。

int j = SomeFunction(); 
int i = 0; 
bool bIisJ = false; 
if (int.TryParse("Your String", out i)) 
    if(i.ToString().Length == 13) 
    bIisJ = i.ToString()[12] == j.ToString(); 
+0

嗯,我不會說i.ToString()應該有13的長度,那麼「0000112222222」呢?寧可像' .Trim()。Length' –

+0

@RaphaëlAlthaus你的正確答案......我只是做了基於簡單的回答,至少它給了OP一些自己制定的條件,而不是我們想到的所有條件。 – LukeHennerley

+0

@RaphaelAlthus我同意你的意見。我的問題很糟糕,我接受批評。我確實嘗試了一些代碼,但認爲我會看起來很荒謬,所以我沒有發佈代碼。最後我找到簡單的解決方案:(!Char.IsDigit(C)) 公共靜態字符串函數(字符串輸入){ 的foreach (在輸入字符C) { 如果 返回false; } – user2032642

0

假設你的TextBox控件的名稱爲Textbox1的:

Textbox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(Textbox1_KeyPress); 
    Textbox1.MaxLength = 13; 
    Textbox1.Validating += new CancelEventHandler(Textbox1_Validating); 

    private void Textbox1_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar)) 
      e.Handled = true; 
    } 

    void Textbox1_Validating(object sender, CancelEventArgs e) 
    { 
     if(Textbox1.Text.Trim().Length != 13) 
     { 
      e.Cancel = true; 
     } 
     else if(Convert.ToInt64(Textbox1.Text.Trim()[12]) != 0) { 
      e.Cancel = true; 
     } 
     else e.Cancel = false; 
    } 
0
public static Boolean isNumber(String test) { 
     char[] chars = test.ToCharArray(); 
     foreach(char c in chars) { 
      int charCode = (int)c; 
      if(charCode < 48 || charCode > 57) 
       return false; 
     } 
     return true; 
    } 

更小白友好的方法?

+0

出於好奇,這是更小菜館友好嗎?當然,將OP指向'int.TryParse()'的文檔會更有幫助,因爲這可能是實現'string> int'轉換的最佳方法:) – LukeHennerley

+0

我當然批准了更多手動方法,當我是noob時,封裝是首先難以理解。 – Machinarius

相關問題