• Viernes 8 de Noviembre de 2024, 04:14

Autor Tema:  Anagrama  (Leído 6409 veces)

lesca

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Anagrama
« en: Viernes 4 de Diciembre de 2009, 16:18 »
0
buenas gente
otra vez posteando en el foro pq realmente necesito ayuda
estoy estudiando para un final en la facultad y no c como realizar un ejercicio

el ejercicio pide hacer un programa q diga si dos fraces son anagramas es decir si tienen las mismas letras pero en diferente orden

lo q yo he echo es mediante una funcion limpiar las fraces de puntos, comas y/o espacios luego de tener la frace limpia con el metodo ToUpperCase dejo las fraces en mayusculas aqui entra mi problema ahora quiero ordenar alfabeticamente los Strings pasandolos a un arreglo char  y utilizando java.util.Arrays.sort  pero en este punto hay algo q hago mal les dejo el codigo espero q puedan ayudarme desde ya muchas gracias
Código: Java
  1. public class Main {
  2.  
  3.  
  4.     public static void main(String[] args) {
  5.  
  6.  
  7.         String frase1="Dan el gran guia";
  8.         String frase2="Angel Gurdian";
  9.         String frase1Limpia="";
  10.         String frase2Limpia="";
  11.         String fraseOrdenada1="";
  12.  
  13.         frase1Limpia=limpiar(frase1);
  14.         frase2Limpia=limpiar(frase2);
  15.  
  16.         frase1Limpia=frase1Limpia.toUpperCase();
  17.         frase2Limpia=frase2Limpia.toUpperCase();
  18.  
  19.  
  20.         System.out.println(""+frase1Limpia+"n"+frase2Limpia);
  21.  
  22.         fraseOrdenada1=orden(frase1Limpia);
  23.         System.out.println(""+fraseOrdenada1);
  24.  
  25.        
  26.  
  27.  
  28. }
  29.     public static String limpiar(String f){
  30.         String fraseLimpia="";
  31.  
  32.         for (int x=0; x < f.length(); x++) {
  33.   if (f.charAt(x) != ' '&& f.charAt(x) != ','){
  34.  
  35.       fraseLimpia=fraseLimpia+f.charAt(x);
  36.   }
  37.  
  38. }
  39.   return fraseLimpia;
  40.  
  41.     }
  42.  
  43. // En esta funcion esta mi problema!!!!!
  44.     public static String orden(String frase){
  45.  
  46.      
  47.  
  48. int a=frase.length();
  49. char n[]= new char[a];
  50. frase.getChars(0, a, n, 0);
  51. java.util.Arrays.sort(n);
  52.  
  53. frase=n.toString();
  54. return frase;
  55.  
  56.  
  57.         }
  58.        
  59.         }
  60.        
  61.    
  62.  
  63.  
  64.  

grandzam

  • Miembro MUY activo
  • ***
  • Mensajes: 118
    • Ver Perfil
Re: Anagrama
« Respuesta #1 en: Sábado 5 de Diciembre de 2009, 06:57 »
0
Bueno, jeje solo me he enfocado en la función en la que tienes el problema, prueba esto:

 
Código: Java
  1. // En esta funcion esta mi problema!!!!!
  2.      public static String orden(String frase){
  3.  
  4.          char[] a_frase= frase.toCharArray();
  5.      
  6.          Arrays.sort(a_frase);
  7.      
  8.          String s_frase = new String(a_frase);
  9.          
  10.          System.out.println(s_frase); //Si quieres elimina esta linea, solo imprime la linea ya ordenada
  11.  
  12.          return s_frase;
  13.      }
  14.  

Casi es igual, solo que en lugar de hacer un new char, lo obtengo directamente de la frase, el sort es lo mismo, solo que lo importe (al inicio del programa y antes de class:
Código: Java
  1. import java.util.Arrays;
  2.  
) y para volver a construir una string ps use un constructor de String al que si le pasas un arreglo de caracteres ps te forma una String. y ps eso es todo, espero te haya ayudado.  :D

e-proyect.com

lesca

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Anagrama
« Respuesta #2 en: Domingo 6 de Diciembre de 2009, 05:23 »
0
Realmente muachas muchas gracias amigo me sirvio realmente de ayuda hace rato intentaba y no lograba hacerlo me ha servido de mucha ayuda pq con esto estoy estudiando para un final en la facultad