2016-02-18 23 views
0

我想擦除字符串中包括空格,點符號等所有非數值。這是銀行賬戶,我想用另一個訂單編號,只有它的編號。我試圖用c#編寫一些代碼,但不能成功。任何人都可以爲我寫一些基本代碼嗎?我如何擺脫非數值

private void btn_convert_Click(object sender, EventArgs e) 
    { 
     ArrayList account= new ArrayList(); 

     for(int i=0 ; i<textBox1.Lines.Length ; i++) 
     { 
      char[] str = textBox1.Lines[i].ToCharArray(); 

      for(int j=0; j<str.Length; j++) 
      { 
       if ((str[j] >= 0 && str[j] <= 9) == true) 
       { 
        account.Add(str[j]); 
       } 
       else continue; 
      } 

     } 

     string[] newaccount= (string[])account.ToArray(typeof(string)); 
     label1.Text = newaccount[1];      

    } 
} 
+1

我敢肯定你會發現有人願意做你的工作,你很快。與此同時,您應該記住一些注意事項:'char'值與數字文字不同,如'0'和'9',不能直接與它們進行比較(嘗試與「0」比較和而不是「9」);沒有必要將字符串轉換爲char []來索引字符,字符串本身可以被索引;您需要澄清您是僅僅想從字符串中刪除非數字字符,還是忽略任何本身包含任何非數字字符的文本行。真的不清楚你在問什麼。 –

+1

請參閱http://stackoverflow.com/questions/4792242/regex-to-get-number-only-from-string – Sparky

回答

-1

最簡單的方法可能是通過使用Regex,簡單的東西像這樣就足夠了:

string input = "foo-bar-123:+-456"; 
string result = Regex.Replace(input, @"[^\d]", ""); 

這將打印123456

您的情況大概可以得到簡化爲僅此:

private void btn_convert_Click(object sender, EventArgs e) 
{ 
    label1.Text = Regex.Replace(textBox1.Text, @"[^\d]", "");  
}