Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

problema con programa en java

kollssdims

Bovino maduro
Desde
3 Feb 2009
Mensajes
102
Hola que tal...

Tengo un problemas con un programa en java...
necesito trabajar con cadenas(Strings), pero no puedo manipularlas,por ejemplo:

al pedir un numero hago lo siguiente:

String valor = JOptionPane.showInputDialog("Escribe un numero");
int a = Integer.parseInt(valor);

...ahi me convierte un String de entrada a entero...
lo que yo quiero es trabajar con las cadenas directamente para posteriormente compararlas se que no puedo convertir un String a String por que de entrada ya es una cadena y solo puedo asignarle un valor al inicio por ejemplo:

String valor = "Juan";

pero yo lo que quiero es que me diga dame una palabra:

String valor = JOptionPane.showInputDialog("Dame una palabra");

pero no puedo hacer esto

String a = String.toString(valor)

y ya trabajar con esa cadena.
Espero que me hayan entendido y me puedan ayudar
 
String cadena = JOptionPane.showInputDialog("Escribe un numero");

Fíjate que "cadena" se declara como String y se le asigna el dato capturado por el InputDialog. Osea, no necesitas convertir nada porque ya es un String. Ahora, si quieres pasar la cadena a otra variable haz lo mismo:

String otracadena = cadena;

Y puedes trabajar con "otracadena" y dejar "cadena" para recuperar la cadena original.

Espero esa sea tu duda.
 
Gracias por tu ayuda pero aun asi no puedo trabajar con la cadena, en si este es mi problema en el programa siguiente:

Un programa que busque una palabra en español dentro de un arreglo y me devuelva su equivalente en ingles:

import javax.swing.*;
public class palabras{
public static void main(String args[])
{
String salida = "";
String valor = "pensar";

int bandera = 0;

String arreglo1[] = {"comer","pensar","conducir","arreglar"};

String arreglo2[] = {"eat","think","drive","fix"};

//valor = JOptionPane.showInputDialog("Ingresa una palabra en español");

for(int i = 0; i < arreglo1.length; i++)
{
if(arreglo1 == valor)
{
bandera = 1;
salida += arreglo2;
}
}

if(bandera == 1)
{
JOptionPane.showMessageDialog(null,"ESPAÑOL \t INGLES\n\n" + valor + " " + salida,"Java",JOptionPane.PLAIN_MESSAGE);
}

else
{
JOptionPane.showMessageDialog(null,"valor no encontrado " + valor,"Java",JOptionPane.PLAIN_MESSAGE);
}

System.exit(0);

}//fin de metodo main
}//fin de la clase palabras


De esta forma si me busca la palabra "pensar" y devuelve el equivalente que es "think" >>> asginandole la palabra a una variable que es valor(String) de la siguiente forma >>>> String valor = "pensar";

pero yo quiero que me pida el valor así:

String valor = JOptionPane.showInputDialog("Ingresa una palabra en español");

y de igual manera lo asigne a la variable valor(String) y que trabaje de la misma forma, osea yo quiero cambiar esto:

String valor = "pensar";

por esto:

String valor = JOptionPane.showInputDialog("Ingresa una palabra en español");

el problema es que al hacerlo no me busca la palabra y no c si me falte hacer algo....
Agradeceré mucho su ayuda....
 
Acuerdate ke las cadenas no se pueden comparar como si fueran tipos primitivos:

Esto da error:

pepe==pepe

aunke es verdadero, para java es falso

ya ke las cadenas son objetos y para compararlas se usar el comando equals por ejemplo:

String x="pepe";
String y ="pepe";

x.equals(y)

esto si serpía verdadero.

ademas acuerdate ke pepe y Pepe no es lo mismo aunke uses equals

bueno sin mas aki tu code modificado

Código:
import javax.swing.*;


public class Palabras {


    public static void main(String[] args) {
        
        int bandera=0;
        String cadena,array1=null,array2 = null;
        
        String arreglo1[]={"comer","rezar","amar"};
        String arreglo2[]={"eat","pray","love"};    
        
        cadena = JOptionPane.showInputDialog("Introduce una cadena");
            
        
        for(int n = 0;n<arreglo1.length;n++){
            
            if(arreglo1[n].equals(cadena)){
                
                bandera=1;
                array1=arreglo2[n];
                array2=arreglo1[n];                
                
                }            
                        
            }
        
        
        if(bandera==1){
            
            JOptionPane.showMessageDialog(null, array2+" = "+array1);
            
        }else{
            JOptionPane.showMessageDialog(null, "Valor No Encontrado");
            
        }

        
                    
            
        }
    }
 
Acuerdate ke las cadenas no se pueden comparar como si fueran tipos primitivos.........

Ok. lo tomare en cuenta!!!
Gracias carnal por tu ayuda me ah servido de mucho y me haz sacado de un apuro...
Sigue así, gracias y suerteeee!!!
:ebrio:
 
ps ya t dieron la respuesta, con Strings debes usar el equals();
aunq con char si se usa el =='x'
 
Volver
Arriba