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

Programa Nombre Al reves en java

Estas en el tema de Programa Nombre Al reves en java en el foro de Java en Foros del Web. Hola buenas tardes amigos les comento yo he programado en c++ y en visual basic.net pero en java soy un poco nuevo en esto. Estoy ...
  #1 (permalink)  
Antiguo 30/07/2012, 17:11
 
Fecha de Ingreso: julio-2012
Ubicación: Distrito Federal
Mensajes: 7
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta Programa Nombre Al reves en java

Hola buenas tardes amigos les comento yo he programado en c++ y en visual basic.net pero en java soy un poco nuevo en esto. Estoy intentando realizar un programa que muestre un nombre al reves por ejemplo si pongo: INGRID se tiene que mostrar algo como esto: DIRGNI. EN C++ HACIA ESTO:
Código C++:
Ver original
  1. •   int i=0;
  2. •   char nom[20];
  3. •   cout<<"\n Arreglo de Datos";
  4. •   cout<<"\n Digite un Nombre";
  5. •   cin>>nom;
  6. •   cout<<"\n Se visualiza al reves";
  7. •   for (i=19; i>=0;i--)
  8. •   {
  9. •   cout<<nom[i];
  10. •   }

EN JAVA INTENTO CREAR ALGO SIMILAR

Código Javascript:
Ver original
  1. private void btn_convertirActionPerformed(java.awt.event.ActionEvent evt) {
  2. String verifica=text_box.getText(); // DECLACARACION DE VARIABLES
  3. String mnomb=text_box.getText();
  4. if (verifica.trim()=="" || verifica.trim().equals("")) // VERIFICO SI ESTA NULLO EL OBJETO O NO
  5.     JOptionPane.showMessageDialog(null,"EL CAMPO ESTA VACIO POR FAVOR INSERTE SU NOMBRE");
  6. else        
  7. for (int i=19;i>=0;i-- )
  8. {
  9. System.out.print( "Su nombre al reves es"+ mnomb.charAt(i));
  10.    
  11. }
  12.     }

PERO NO LOGRO HACER QUE SE MUESTRE EL NOMBRE AL REVES ESPERO QUE ME PUEDAN AYUDAR LA VERDAD SOY NOVATO EN ESTO DE JAVA ESPERO QUE ME PUEDAN DECIR MI ERROR DE ANTEMANO GRACIAS
  #2 (permalink)  
Antiguo 30/07/2012, 22:14
 
Fecha de Ingreso: julio-2012
Mensajes: 39
Antigüedad: 11 años, 9 meses
Puntos: 2
Respuesta: Programa Nombre Al reves en java

te hice algo que espero te sirva esta es una clase de java y esta lo mas corta y completa que considere, con esto puedes ver como hacer lo que esperas...


Código Java:
Ver original
  1. import java.awt.BorderLayout;
  2. import java.awt.Dimension;
  3. import java.awt.event.KeyEvent;
  4. import java.awt.event.KeyListener;
  5.  
  6. import javax.swing.JFrame;
  7. import javax.swing.JLabel;
  8. import javax.swing.JPanel;
  9. import javax.swing.JTextField;
  10. import javax.swing.SwingConstants;
  11. import java.awt.Font;
  12.  
  13.  
  14. public class PalabraAlReves extends JFrame implements KeyListener{
  15.  
  16.     private static final long serialVersionUID = 1L;
  17.     private JTextField jtfPalabra = null;
  18.     private JPanel jpContenedor = null;
  19.     private JLabel jlPalabraInvertida = null;
  20.    
  21.     public PalabraAlReves(String titulo){
  22.         super(titulo);
  23.         this.setSize(300,100);
  24.         this.setVisible(true);
  25.         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  26.         this.setLocationRelativeTo(null);
  27.         this.setResizable(false);
  28.         this.setContentPane(getJPContenedor());
  29.     }
  30.    
  31.     private JPanel getJPContenedor(){
  32.         if(jpContenedor == null){
  33.             jpContenedor = new JPanel();
  34.             jpContenedor.setLayout(new BorderLayout());
  35.             jpContenedor.add(getJTFPalabra(),BorderLayout.NORTH);
  36.             jpContenedor.add(getJLPalabraInvertida(),BorderLayout.CENTER);
  37.         }
  38.         return jpContenedor;
  39.     }
  40.    
  41.     private JTextField getJTFPalabra(){
  42.         if(jtfPalabra == null){
  43.             jtfPalabra = new JTextField();
  44.             jtfPalabra.setPreferredSize(new Dimension(20,20));
  45.             jtfPalabra.setHorizontalAlignment(JTextField.CENTER);
  46.             jtfPalabra.addKeyListener(this);
  47.         }
  48.         return jtfPalabra;
  49.     }
  50.    
  51.     private JLabel getJLPalabraInvertida(){
  52.         if(jlPalabraInvertida == null){
  53.             jlPalabraInvertida = new JLabel();
  54.             jlPalabraInvertida.setText("Esperando Palabra...");
  55.             jlPalabraInvertida.setFont(new Font("Dialog", Font.BOLD, 24));
  56.             jlPalabraInvertida.setHorizontalAlignment(SwingConstants.CENTER);
  57.         }
  58.         return jlPalabraInvertida;
  59.     }
  60.    
  61.     public static void main(String[] args) {
  62.         new PalabraAlReves("Invertir Palabra");
  63.     }
  64.    
  65.     private String doInvertir(String string){
  66.         if(string.equals(""))return "Esperando Palabra";
  67.         String invertida = "";
  68.         for(int i = string.length();i != 0;i--){
  69.             invertida += String.valueOf(string.charAt(i-1));
  70.         }
  71.         return invertida;
  72.     }
  73.    
  74.     public void keyPressed(KeyEvent ke) {
  75.         if(ke.getKeyCode() == KeyEvent.VK_ENTER){
  76.             this.getJLPalabraInvertida().setText(doInvertir(this.getJTFPalabra().getText()));
  77.         }      
  78.     }
  79.  
  80.     public void keyReleased(KeyEvent e) {}
  81.    
  82.     public void keyTyped(KeyEvent e) {}
  83. }
  #3 (permalink)  
Antiguo 31/07/2012, 01:45
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Programa Nombre Al reves en java

Lo que tienes es que recuperar la palabra como String

Convertir a char array (un for i=0 ; i<palabra.length(); i++) para palabra(i) y añades cada palabra(i) al char array (ya que estamos usa una Collection<char> o un ArrayList<char> para introducirlo)

Finalmente con el charArray haces un nuevo bucle con (j = charArray.size() -1; j >= 0; j--) y reconstruyes palabraAlReves empezando con valor "" y haciendo:

palabraAlReves += charArray.get(j); // Suponiendo q es un arrayList

Y luego lo vuelcas donde quieres
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #4 (permalink)  
Antiguo 31/07/2012, 10:24
Avatar de youangelazul  
Fecha de Ingreso: julio-2012
Ubicación: Ancash, Huarmey
Mensajes: 18
Antigüedad: 11 años, 9 meses
Puntos: 3
Respuesta: Programa Nombre Al reves en java

Hola OscarSoftwares;

Bueno respecto a tu pedido sabemos que es facil, pero tambien a la misma vez entiendo que eres recien nuevo en JAVA y adecuarse a ello puede ser un poco tedioso pero para eso estamos nosotros para ayudarte, aqui te dejo un pequeño ejemplo que de ante mano lo probe y sin funciona a un 100% no se porque aqui mi amigo cyborgve se complica tanto en la respuesta no se necesita mucho codigo en la clase X para hacer correr tan simple condiccion, en fin si tu deseas le añades esta logica a tu programa...

public static void main(String[] args)
{
String nombre, nombreAlReves = "";

nombre = JOptionPane.showInputDialog("Ingrese Name: ");

for (int i=nombre.length(); i > 0; i--)
{
nombreAlReves += nombre.substring(i-1, i);
}

System.out.println(nombreAlReves);
}

Saludos desde Perú
YouAnGelAzul.
  #5 (permalink)  
Antiguo 31/07/2012, 12:43
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: Programa Nombre Al reves en java

Para esto y mas puedes hacer uso de la clase StringBuilder, basta con algo asi;

Código Java:
Ver original
  1. StringBuilder palabra = new StringBuilder("ANIMAL");
  2. String palabraReves = palabra.reverse().toString();
  3.  
  4. //Version resumida:
  5. String reves = new StringBuilder("ANIMAL").reverse().toString();
__________________
De nada, hay te encargo +1...
  #6 (permalink)  
Antiguo 01/08/2012, 02:48
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Programa Nombre Al reves en java

Muy buena esa, Zero.

__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: nombre, programa, string
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 05:30.