elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  | Ayuda | - | Me Pueden Hacer El Favor De Explicar Este Código Detalladamente? |
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: | Ayuda | - | Me Pueden Hacer El Favor De Explicar Este Código Detalladamente? |  (Leído 6,048 veces)
JADP

Desconectado Desconectado

Mensajes: 34



Ver Perfil
| Ayuda | - | Me Pueden Hacer El Favor De Explicar Este Código Detalladamente? |
« 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...


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: | Ayuda | - | Me Pueden Hacer El Favor De Explicar Este Código Detalladamente? |
« Respuesta #1 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. }


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
JADP

Desconectado Desconectado

Mensajes: 34



Ver Perfil
Re: | Ayuda | - | Me Pueden Hacer El Favor De Explicar Este Código Detalladamente? |
« Respuesta #2 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.
En línea

dainodaibouken

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: | Ayuda | - | Me Pueden Hacer El Favor De Explicar Este Código Detalladamente? |
« Respuesta #3 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.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines