Retornando somente números de uma string.
Postado em 04. ago, 2011 por Jonatas Cezarino in Tudo sobre Tecnologia
Bom pessoal, existem várias maneiras de fazer isso, lógico, assim como tudo. Essa função é interessante pois retorna todos os números da string desejada.
Declaração:
public static int RemoveLetras(string valorInicial) { string tmp = string.Empty; int number = 0; int retorno = 0; string[] digits = Regex.Split(valorInicial, @"\D+"); foreach (string value in digits) { if (int.TryParse(value, out number)) { tmp += value; } } if (!String.IsNullOrEmpty(tmp)) { int.TryParse(tmp, out retorno); } return retorno; }
Utilização:
int tmp = 0; tmp = RemoveLetras("123abc456def789");
Uma outra maneira de fazer isso utilizando Expressão Regular seria assim:
int tmp = 0; tmp = Regex.Match("123abc456", @"\d+").Value;
Ponto negativo: Só retorna o primeiro conjunto de inteiros. Exemplo: Se você passar “123abc456″ na string, só retornará “123″.
Até a próxima!
Um Comentário
Diego Pimenta
15. ago, 2011
Grande Jonatas, boa dica cara.
Pode utilizar a função da classe de String para concatenar o retorno do array pela expressão regular.
Ex:
string.Join(null, System.Text.RegularExpressions.Regex.Split(expr, “[^\\d]“))
Deixe um comentário
You must be logged in to post a comment.