Foro de elhacker.net

Programación => Java => Mensaje iniciado por: JADP en 18 Diciembre 2013, 21:41 pm



Título: | Ayuda | - | Me Pueden Hacer El Favor De Explicar Este Código Detalladamente? |
Publicado por: JADP en 18 Diciembre 2013, 21:41 pm
Hola a todos, estoy estudiando el método String.substring en Java - Eclipse y me encontré con este ejercicio del numero Capicúa, pero no logro entender bien el código,  les pido el favor si pueden ser lo mas detallado posible en la explicación del código del ejercicio.

Código:
package nm;

import javax.swing.JOptionPane;

public class nn {

public static void main (String[] x){
String numero = JOptionPane.showInputDialog("Ingresa un numero");
System.out.println("INGRESASTE EL NUMERO: "+numero);
System.out.println("\nIMPRIMENDO EL NUMERO AL REVES: "+invertido(numero));

if(numero.
compareTo(invertido(numero))==0)

System.out.println("\nSI ES UN NUMERO CAPICUA");
else
System.out.println("\nNO ES UN NUMERO CAPICUA");
}

private static String invertido(String numero) {
String result = "";
for (int i = numero.length() - 1; i >= 0; i--){
result = result + numero.substring(i, i+1);
}
return result;
}

}

Agradezco sus ayudas...


Título: Re: | Ayuda | - | Me Pueden Hacer El Favor De Explicar Este Código Detalladamente? |
Publicado por: Shell Root en 18 Diciembre 2013, 22:56 pm
#1 Ingresa un número y lo guarda en la variable numero de tipo string.
#2 Muestra el número ingresado
#3 Imprime el número al reves con el uso de una función de nombre invertido que tiene como parametro un string.
Código
  1. String numero = JOptionPane.showInputDialog("Ingresa un numero");
  2. System.out.println("INGRESASTE EL NUMERO: "+numero);
  3. System.out.println("\nIMPRIMENDO EL NUMERO AL REVES: "+invertido(numero));

#1 Condicional donde compara el número ingresado y el número invertido
#2 Sí es verdadero muestra SI ES UN NUMERO CAPICUA
#3 De lo contrario
#4 Muestra NO ES UN NUMERO CAPICUA
Código
  1. if(numero.compareTo(invertido(numero))==0)
  2.   System.out.println("\nSI ES UN NUMERO CAPICUA");
  3. else
  4.   System.out.println("\nNO ES UN NUMERO CAPICUA");



#1 Declaración de la función invertido con un parametro string
#2 Declaración de variable result de tipo string
#3 Ciclo que empieza desde la última posición del número ingresado hasta que i sea meyor o igual a 0 con decrementos de 1
#4 {
#5 Guarda el valor de la posición i en la variable result
#6 }
#7 retornar resultado
#8 }
Código
  1. private static String invertido(String numero) {
  2.   String result = "";
  3.   for (int i = numero.length() - 1; i >= 0; i--)
  4.   {
  5.      result = result + numero.substring(i, i+1);
  6.   }
  7.   return result;
  8. }



Código
  1. public class HelloWorld{
  2.  
  3.     public static void main(String []args){
  4.        String numero = "1234";
  5.        System.out.println("INGRESASTE EL NUMERO: " + numero);
  6.        System.out.println("IMPRIMENDO EL NUMERO AL REVES: " + invertido(numero));
  7.  
  8.        if(numero.compareTo(invertido(numero))==0)
  9.            System.out.println("\nSI ES UN NUMERO CAPICUA");
  10.        else
  11.            System.out.println("\nNO ES UN NUMERO CAPICUA");
  12.     }
  13.  
  14.     private static String invertido(String numero){
  15.        String result = "";
  16.        for (int i = numero.length() - 1; i >= 0; i--)
  17.        {
  18.            result = result + numero.substring(i, i+1);
  19.        }
  20.  
  21.        return result;
  22.    }
  23. }


Título: Re: | Ayuda | - | Me Pueden Hacer El Favor De Explicar Este Código Detalladamente? |
Publicado por: JADP en 19 Diciembre 2013, 15:31 pm
Gracias @shellroot  aunque todavía no entiendo muy bien la parte donde se hace el substring  y el ==0.


Título: Re: | Ayuda | - | Me Pueden Hacer El Favor De Explicar Este Código Detalladamente? |
Publicado por: dainodaibouken en 19 Diciembre 2013, 23:59 pm
Código
  1. if(numero.compareTo(invertido(numero))==0)

compara la variable "numero" invocando el metodo invertido, este metodo lo que hace es usar la clase substring para contar los caracteres de la variable "numero"

la clase substring hagarra la variable string "Pedro" y te retorna los caracteres que le indiques por ejemplo :

Código
  1. string variable = "pedro";
  2. variable.substring(1,2);

si lo imprimes te arroja esto :
ped

espero que te ayude un poco.