• Jueves 28 de Marzo de 2024, 23:17

Autor Tema:  Como quito numeros de una cadena.  (Leído 4548 veces)

エリック

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Como quito numeros de una cadena.
« en: Lunes 7 de Febrero de 2011, 15:28 »
0
Tengo una cadena por ejemplo: "34*5+6*12/3", de alli quiero separar los numeros de los caracteres(operadores matematicos), eso lo hago con un slipt, donde define a los caracteres{ '*', '+' , '/'} como los separadores, al final me queda un array donde en cada posicion tengo cada cifra existente en la operacion.
Ahora como hago lo inverso como obtener los operadores matematicos en un array, tengo que eliminar los numeros de la cadena, tal vez alguien ya lo hizo antes y conozca una solucion eficaz. tenga en cuenta que la expresion matematica no siempre sera como la de arriba, crecera en complejidad.

kanop

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Como quito numeros de una cadena.
« Respuesta #1 en: Lunes 7 de Febrero de 2011, 16:26 »
0
yo hice algo parecido pero con letras y simbolos

no tengo el codigo aca pero la idea es la siguiente:

pimero llevas la cadena a un array de caracteres
obtendras un array con cada caracter de la cadena
luego creas un array con lo que quieres ir separando en este caso numero asi obtenemos 2 array
uno con la cadena A y el otro con lo que deseamos eliminar B.
ahora con un foreach recorre la cadena A y en cada item compara si existe en B y no existe agreagalo a un string
por ultimo tienes una cadena solo con los simbolos si los quieres separar usa tochararray nuevamente;

Código: C#
  1.  
  2.  
  3.  
  4. public string funcion(string cadena)
  5. {
  6. string cadenafinal="";
  7. char[] ArrayA = cadena.ToCharArray();
  8. char[] ArrayB={'+','-','/','*'};
  9. foreach(char[] item in ArrayA)
  10. {
  11.     foreach(char[] itemB in ArrayB)
  12.     {
  13.         if(item==itemB)
  14.     {
  15.     }
  16.      else
  17.     {
  18.     cadenafinal+=arrayB[i].toString();
  19.     break;
  20.     }
  21. }
  22. return cadenafinal;
  23.  
  24.  

espero te sirva si hay errores en el codigo sorry pero lo hice de memoria  :D  :D

LapizTolita

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Como quito numeros de una cadena.
« Respuesta #2 en: Lunes 7 de Febrero de 2011, 16:47 »
0
Código: C#
  1.  
  2.    var a = Console.ReadLine();
  3.    var b = new List<char>();
  4.    foreach (var x in a)
  5.       if ((x == '*') || (x == '/') || (x == '-') || (x == '+'))
  6.           b.Add(x);
  7.    foreach (var x in b)
  8.      Console.WriteLine(x);
  9.    Console.Read();
  10.  
  11.  
igual si estas haciendo una calculadora o algo así te recomiendo esto para empezar postfija y trabajar con una pila, como para que te vallas acostumbrando a manejar estructuras de datos.

Edit: ya respondieron =P
Código: C#
  1. if(item==itemB)
  2.     {
  3.      }
  4.  
??? if(item!=itemb) maybe?

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re: Como quito numeros de una cadena.
« Respuesta #3 en: Lunes 7 de Febrero de 2011, 21:04 »
0
exelente link de postfija, puedo decir que aprendí algo nuevo.. gracias.. Lapiz... :) no digo todo el nick por que suena medio sarcástico! xD... un saludo!
@gabio87