2016-02-18 2 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]", "");  
} 
Смежные вопросы