Error metodo main

Iniciado por SeñorX95, 13 Marzo 2015, 20:33 PM

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

SeñorX95

He hecho el metodo main pero al devolver un valor devulevo la referencia en vez de la cadena de caracteres que tengo mal?

Código (java) [Seleccionar]
public static void main(String[] arg){
      Scanner entrada=new Scanner(System.in);
      double peso;
      Recurso u=new Recurso();
      String url;
      System.out.println("Introduce el url");
      url=entrada.nextLine();
      if(url.equals("")){
          System.out.println("Ha decidido salir");
      }else{
          System.out.println("Introduce el peso");
          peso=entrada.nextInt();
          if(u.verProtocolo()){
              System.out.println("El url si tiene protocolo http");
          }else {
              System.out.println("El url no tiene protocolo http");
          }
         
          System.out.println("La clave que se asigna a esta url es: "+u.calcularClave());
         
      }
     
     
     
     
   }

SeñorX95

En el metodo calcularClave () del final

Usuario Invitado

Vamos tío, si no pones el contenido de dicho método, ¿cómo esperas que te ayuden?
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

SeñorX95

Código (java) [Seleccionar]
public char[] calcularClave(){
       String s,n,a;
       String[] servidor = url.split("/");
       s=servidor[2];
       String[] nombre = url.split("/");
       n=nombre[6];
       int resultado;
       int total;
       int suma=0;
       int suma2=0;
       String letras="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
       
       for (int i=0; i<s.length();i++) {
           char n1;
           n1=s.charAt(i);
           
           boolean x=false;
           if(n1>'0' && n1<'9'){
               suma+=Integer.parseInt(""+n1);
           }else{
               if((n1<'a' || n1>'z') && (n1<'A' || n1>'Z')){
                   suma+=10;
               }else{
                   for(int j=0;x==false;){
                       char n2;
                       n2=letras.charAt(j);
                       if(n1!=n2){
                           j++;
                       }else{
                           x=true;
                           suma+=(j+1);
                       }
                   }
               }
           }
       }
       
       for (int i=0; i<n.length();i++) {
           char n1;
           n1=n.charAt(i);
           boolean x=false;
           if(n1>'0' && n1<'9'){
               suma2+=Integer.parseInt(""+n1);
           }else{
               if((n1<'a' || n1>'z') && (n1<'A' || n1>'Z')){
                   suma2+=10;
               }else{
                   for(int j=0;x==false;){
                       char n2;
                       n2=letras.charAt(j);
                       if(n1!=n2){
                           j++;
                       }else{
                           x=true;
                           suma2+=(j+1);
                       }
                   }
               }
           }
       }
       total=suma+suma2;
       resultado=total/n.length();
       String a1,a2,a3;
       a1=url.substring(url.indexOf("//")+2);
       a2=a1.substring(a1.indexOf("/")+1);
       a3=a2.substring(0,resultado);
       char clave[] = a3.toCharArray();
       return clave;
   }

Usuario Invitado

Te daré algunos consejos:

1) Utiliza nombres descriptivos a las variables.
2) Modulariza código. Ese proceso largo lo puedes hacer en varios pequeños.

Si no sigues éstos dos simples consejos, tu código se convertirá en una completa mezcla de palabras sin sentido. Es de vital importancia que sigas esos principios desde ahora.

Respecto a tu pregunta, te imprime la referencia del array. Lo que tienes que hacer es recorrer el array de vuelto en un for e ir imprimiendo carácter por carácter.

Código (java) [Seleccionar]
for(char c : u.calcularClave())
    System.out.print(c);
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

SeñorX95

Y para sacar los carecteres juntos?

Usuario Invitado

Para eso puedes concatenar los caracteres así:

Código (java) [Seleccionar]
String key = "";
for(char c : u.calcularClave())
    key += c;
System.out.println("La clave es: "+key);


Saludos.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

SeñorX95

Gracias tio eres un maquina!  ;D