Autor Tema: Buscar SOLO el numero en un string.  (Leído 4431 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Buscar SOLO el numero en un string.
« en: 31 de Julio de 2007, 16:37:53 »
Hola a todos. Bueno pues q tengo un probema en como encontrar o cojer el numero q haya en un string, haber me explico: Tengo un string  var = "cuatro 4", lo q quiero es cojer solo el numero "4" y quiero q busque el numero q haya en ese string no por direciones var[8] y eso.

Espero puedan ayudarme, gracias.  :P

salu2 8) 8)

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Buscar SOLO el numero en un string.
« Respuesta #1 en: 31 de Julio de 2007, 16:45:27 »
Yo lo haría de esta forma:

Debes conocer la longitud de la cadena de texto, si es fija mucho mejor, si no lo es usas STRLEN luego haces un for que corra toda la cadena y preguntes posición por posición de la cadena, cual de esos caracteres acci esta entre los valores d'48'->d'57'.

Que son desde el "0" hasta el "9"

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Buscar SOLO el numero en un string.
« Respuesta #2 en: 31 de Julio de 2007, 17:51:48 »
Lo quiero para Visual C# olvide agregar, hasta luego.

salu2 8) 8)

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: Buscar SOLO el numero en un string.
« Respuesta #3 en: 31 de Julio de 2007, 18:05:58 »
Si esperas que te hagan el trabajo, demoraras mas a que si lo haces tu. Inténtalo y veras que te sale. 

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Buscar SOLO el numero en un string.
« Respuesta #4 en: 01 de Agosto de 2007, 03:46:56 »
Yo lo haría de esta forma:

Debes conocer la longitud de la cadena de texto, si es fija mucho mejor, si no lo es usas STRLEN luego haces un for que corra toda la cadena y preguntes posición por posición de la cadena, cual de esos caracteres acci esta entre los valores d'48'->d'57'.

Que son desde el "0" hasta el "9"
Enrealidad pense eso desde un principio pero queria saber si habia una funcion q lo hiciera por si sola y por eso luego dije q lo queria en VC# yaq eso de STRLEN no ay en VC#. De todas formas gracias PicMouse, yaq eres el unico q a podido siquiera decir algo  :D

Alfinal lo hice asi:
Código: [Seleccionar]
                for (int i = 0; i < e.Node.Text.Length; i++)
                {
                    if ((e.Node.Text[i].ToString() == "1")
                    || (e.Node.Text[i].ToString() == "2")
                    || (e.Node.Text[i].ToString() == "3")
                    || (e.Node.Text[i].ToString() == "4")
                    || (e.Node.Text[i].ToString() == "5")
                    || (e.Node.Text[i].ToString() == "6")
                    || (e.Node.Text[i].ToString() == "7")
                    || (e.Node.Text[i].ToString() == "8")
                    || (e.Node.Text[i].ToString() == "9"))
                    {
                        blaablaa...
                    }
                }

Gracias nuevamente.


salu2 8) 8) 8)

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Buscar SOLO el numero en un string.
« Respuesta #5 en: 01 de Agosto de 2007, 14:56:25 »
Bueno pero no te enojes :P.
Esto es lo que yo usaría:

Código: C#
  1. string cadena = "numero cuatro 4";
  2.                        
  3.                         string[] tokens;
  4.                        
  5.                         tokens = cadena.Split( ' ' );
  6.                        
  7.                         for ( int i = 0; i < tokens.Length; i++ ) {
  8.                                 double numero;
  9.                                 bool esNumero = Double.TryParse( tokens[ i ], NumberStyles.Any, CultureInfo.InvariantCulture, out numero );
  10.                                 if ( esNumero ) {
  11.                                         Console.WriteLine( "Encontré un número: {0}\n", numero );
  12.                                 }
  13.                         }

Aunque claro, no convierte sólo dígitos sino "cualquier" número :P.
« Última modificación: 04 de Agosto de 2007, 18:12:42 por Geo »
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Buscar SOLO el numero en un string.
« Respuesta #6 en: 01 de Agosto de 2007, 17:38:20 »
Vaya! eso de q sige despues de bool esNumero no entiendo nada  :lol: ni de eso de Split... Cuanto me falta!!  :-)  Le estare dando un vistaso haber q tanto puedo entender y aprender x)

Gracias por responder xP!


salu2 8) 8)

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Buscar SOLO el numero en un string.
« Respuesta #7 en: 04 de Agosto de 2007, 18:26:11 »
Split es una función miembro del tipo string, separa la cadena en varias partes ( en inglés llamadas "tokens"), basándose en la cadena que recibe como parámetro. En este caso, se separará el contenido de cadena basándose en los espacios encontrados (es decir, separamos palabras :P).

En el ciclo for recorremos cada uno de los elementos de tokens, que es un array que contiene las palabras separadas.

La función TryParse pertenece "intenta" convertir una cadena (el primer parámetro) a un número (el número convertido se guardaría en la variable numero, cuarto parámetro de la función), y devuelve true si la conversión se pudo realizar (dicho de otra forma, si la cadena que pasamos es un número :)). Los parámetros intermedios se refieren al formato a admitir de la cadena y a información sobre representación numérica, busca información en la documentación.

Suerte.
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Buscar SOLO el numero en un string.
« Respuesta #8 en: 05 de Agosto de 2007, 01:10:22 »
Se agradece  :-/


salu2 8) 8)