Foros del Web » Programación para mayores de 30 ;) » .NET »

Cómo ordenar letras en un string.

Estas en el tema de Cómo ordenar letras en un string. en el foro de .NET en Foros del Web. Hola, como va? Bueno, tengo un problema con un ejercicio de c# y me estoy volviendo locaa!! Pregunto, los strings (cadenas) se pueden manejar como ...
  #1 (permalink)  
Antiguo 24/05/2009, 10:14
 
Fecha de Ingreso: mayo-2009
Mensajes: 7
Antigüedad: 14 años, 11 meses
Puntos: 0
Cómo ordenar letras en un string.

Hola, como va?
Bueno, tengo un problema con un ejercicio de c# y me estoy volviendo locaa!!

Pregunto, los strings (cadenas) se pueden manejar como vectores? Es decir, yo tengo que ordenar alfabeticamente una palabra y aplique un burbujeo usando subindices en la cadena, pero me saltan miles de errores de conversion de datos y demás.
Ahora intente pasando la cadena a un array de char, pero cuando quiero sacar los espacios en blanco con la funcion Trim, no me lo permite porque es solo para cadenas, y qué tendria que hacer? pasar todo de nuevo a string?

Ay me estoy volviendo loca!! si alguien pudiera ayudarme, se lo agradeceria toda la vida!!!!
muchas gracias y espero respuestas!
  #2 (permalink)  
Antiguo 24/05/2009, 17:16
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Respuesta: Cómo ordenar letras en un string.

si tu caso es algo como

"este es mi string que quiero ordernar alfabeticamente"

y el resultado final es

"alfabeticamente es este mi ordernar que quiero string"


simplemente requieres hacer algo como

string []cadenas=micadena.split(' '); // separa las cadenas

Array.Sort(cadenas); // ordena las cadenas

string final ordernada= string.join(cadenas," "); // re sintetiza las cadenas en uno solo
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 24/05/2009, 18:27
 
Fecha de Ingreso: mayo-2009
Mensajes: 7
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Cómo ordenar letras en un string.

No, mi caso seria tener la cadena "hola como andas"
y tendria que salir "aaacdhlmnooos"

como hago? se puede hacer un burbujeo con variables del tipo string? o tendria que usar un array de caracteres?

Gracias por responderme.
  #4 (permalink)  
Antiguo 24/05/2009, 19:40
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Cómo ordenar letras en un string.

Prueba con esto:
Código C#:
Ver original
  1. String TrimCad = this.TxtCad01.Text.Replace(" ", ""); //Limpio los espacios en blanco de una caja de texto y lo asigno a una variable la caja de texto puede ser tambien una variable
  2.             String[] ArrayCad = new String[TrimCad.Length]; // creando un arreglo donde almacenamos cada caracter de la variable creada
  3.             this.TxtCadResult.Text = ""; // Limpiando la caja de texto resultante
  4.             for (int i = 0; i < TrimCad.Length; i++)
  5.             {
  6.                 ArrayCad[i] = TrimCad.Substring(i, 1); // Insertando cada caracter en el array
  7.             }
  8.             // Este metodo ordena el array descendentemente
  9.             Array.Sort(ArrayCad, delegate(String s1, String s2) { return s2.CompareTo(s1); });
  10.             // Este metodo ordena el array ascendentemente
  11.             // Array.Sort(ArrayCad, delegate(String s1, String s2) { return s1.CompareTo(s2); });
  12.             foreach (String Cad in ArrayCad)
  13.             {
  14.                 this.TxtCadResult.Text += Cad; // aqui imprimo el resultado final
  15.             }
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 25/05/2009, 05:36
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Respuesta: Cómo ordenar letras en un string.

simplemente algo como

dice dradi

le haces un trim despues un remove de espacios

ya que tienes eso

simplemente haces un

tustring.ToCharArray()

y ahi haces tu burbuja o tu metodo que requieras y despues vuelves a convertir tu char array a string
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #6 (permalink)  
Antiguo 25/05/2009, 07:08
 
Fecha de Ingreso: mayo-2009
Mensajes: 7
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Cómo ordenar letras en un string.

Muchas gracias por las respuestas!!!

ahora una preguntita mas, si tendria que sacar el caracter que mas veces se repitio de una cadena, me conviene primero ordenarlo, no?
  #7 (permalink)  
Antiguo 25/05/2009, 10:04
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Respuesta: Cómo ordenar letras en un string.

podria usar un diccionario y hacerlo de una manera muy simple.

Dictionary<char,int> caracteres=new Dictionary<char,int>();

foreach(char currentChar on tucadena.ToCharArray())
{
if(caracteres.ContainsKey(currentChar))
caracteres[currentChar]++;
else
caracteres.Add(currentchar,1);
}

y al final solo buscas que key dentro de tu diccionario tienen el value mas grande
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #8 (permalink)  
Antiguo 25/05/2009, 10:13
 
Fecha de Ingreso: mayo-2009
Mensajes: 7
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Cómo ordenar letras en un string.

el diccionario actua como qué tipo de dato?
una tabla hash?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:39.