Programación General > Java

 problema con toLowerCase

(1/2) > >>

el_funa:
hola tengo este problema de que no puedo ocupar bien el toLowerCase ya que no melos transforma a minuculas paraasi comparar
tengo que comparar unos colores pero el usuario puede colocar mayusculas y no funcionaria el prog. de todas maneras ahora estamos ocupando el blueJ

public void setColor(String color)
    {
        if(color.toLowerCase()=="blanco")    // AQUI ESTA EL PROBLEMA
        {
    this.color=color;
    }

entonces es ahi donde debe ir el toLowerCase ??o esta mal planteado el problema ?


aqui esta el codigo codigo completo.


--- Código: Java ---/** * Write a description of class Equipo here. *  * @author (your name)  * @version (a version number or a date) */public class Equipo{    private String marca;    private String modelo;    private String numeroSerie;    private String descripcion;    private String color;    private Wifi wifi;    private Llamada llamada;    private Mensajeria mensajeria;    private Reproductor reproductor;        public Equipo()    {    marca=null;    modelo=null;    numeroSerie=null;    descripcion=null;    color=null;    wifi=new Wifi();    llamada=new Llamada();    mensajeria=new Mensajeria();    reproductor=new Reproductor();        }        public Equipo(String marca,String modelo,String numeroSerie,String descripcion,String color, Wifi wifi,Reproductor reproductor, Llamada llamada, Mensajeria mensajeria)       {    setMarca(marca);    setModelo(modelo);    setNumeroSerie(numeroSerie);    setDescripcion(descripcion);    setColor(color);    this.wifi=wifi;    this.llamada=llamada;    this.mensajeria=mensajeria;    this.reproductor=reproductor;    }        public String getMarca()    {    return marca;    }    public String getModelo()    {    return modelo;    }    public String getNumeroSerie()    {    return numeroSerie;    }    public String getDescripcion()    {    return descripcion;    }    public String getColor()    {    return color;    }        public void setMarca(String marca)//nokia, sony, lg, Samsung, blackBerry o iphone    {        if(marca.toLowerCase()=="nokia")        {    this.marca=marca;    }    else{    if(marca.toLowerCase()=="sony")        {    this.marca=marca;    }        else{    if(marca.toLowerCase()=="samsung")        {    this.marca=marca;    }    else{    if(marca.toLowerCase()=="blackberry")        {    this.marca=marca;    }    else{    if(marca.toLowerCase()=="lg")        {    this.marca=marca;    }    else{        if(marca.toLowerCase()=="iphone")        {    this.marca=marca;    }    else{        System.out.println("solamente estan estas marcas: nokia, sony, lg, Samsung, blackBerry o iphone");    }}}}}}     }        public void setModelo(String modelo)    {        if(modelo.length()==5)        {    this.modelo=modelo;}else{System.out.println("el numero de modelo debe ser igual a cinco (5)");}    }    public void setNumeroSerie(String numeroSerie)    {    if(numeroSerie.length()>=3)        {    this.numeroSerie=numeroSerie;}else{System.out.println("El numero de serie debe tener mas de tres (3) caracteres.");}      }    public void setDescripcion(String descripcion)    {    if(descripcion.length()>=3)        {    this.descripcion=descripcion;}else{System.out.println("La descripcion debe tener mas de tres (3) caracteres.");}      }    public void setColor(String color)    {        if(color.toLowerCase()=="blanco")    // AQUI ESTA EL PROBLEMA        {    this.color=color;    }    else{    if(color.toLowerCase()=="negro")        {    this.color=color;    }        else{    if(color.toLowerCase()=="rosado")        {    this.color=color;    }    else{    if(color.toLowerCase()=="rojo")        {    this.color=color;    }    else{    if(color.toLowerCase()=="gris")        {    this.color=color;    }    else{        System.out.println("solamente estan estos colores blanco, negro , rosado, rojo o gris");    }}}}} }                   public void printEquipo()    {    System.out.println("La marca es:"+getMarca());    System.out.println("El modelo es:"+getModelo());    System.out.println("Numero de serie:"+getNumeroSerie());    System.out.println("Descripciones:"+getDescripcion());    System.out.println("El color es:"+getColor());    wifi.printWifi();    llamada.printLlamada();    mensajeria.printMensajeria();    reproductor.printReproductor();        }} 

shadow_rev:
Hasta donde tengo conocimiento, java no compara los strings con los signos habituales de comparación, o sea, no funciona el ==. En su lugar, utiliza la función compareTo() o compareToIgnoreCase(), que es lo mismo pero ignorando mayúsculas o minúsculas:

--- Código: Java ---if(color.compareToIgnoreCase("blanco")==0) {  this.color=color;} 
:suerte:

posman:
Si puedes utilizar == para comparar cadenas, pero solamente cuando les asignas un valor literal


--- Código: Java ---String c1 = "hola";String c2 = "hola";if ( c1 == c2) System.out.println("Si son iguales"); 
El problema viene cuando les asignas el valor como objetos

--- Código: Java ---String d1, d2;d1 = "hola";d2 = new String("hola");if ( d1 == d2 ) System.out.println("Si son iguales");else System.out.println("No son iguales"); if ( d1.equals(d2) ) System.out.println("Si son iguales");else System.out.println("No son iguales");  

el_funa:

--- Cita de: "shadow_rev" ---Hasta donde tengo conocimiento, java no compara los strings con los signos habituales de comparación, o sea, no funciona el ==. En su lugar, utiliza la función compareTo() o compareToIgnoreCase(), que es lo mismo pero ignorando mayúsculas o minúsculas:

--- Código: Java ---if(color.compareToIgnoreCase("blanco")==0) {  this.color=color;} 
:suerte:
--- Fin de la cita ---

gracias por la ayuda eso era lo que necesitaba :D

shadow_rev:

--- Cita de: "posman" ---Si puedes utilizar == para comparar cadenas, pero solamente cuando les asignas un valor literal


--- Código: Java ---String c1 = "hola";String c2 = "hola";if ( c1 == c2) System.out.println("Si son iguales"); 
El problema viene cuando les asignas el valor como objetos

--- Código: Java ---String d1, d2;d1 = "hola";d2 = new String("hola");if ( d1 == d2 ) System.out.println("Si son iguales");else System.out.println("No son iguales"); if ( d1.equals(d2) ) System.out.println("Si son iguales");else System.out.println("No son iguales");  
--- Fin de la cita ---
Gracias por la aclaración; y ahora que lo pienso, por qué tengo esta rara sensación de dejavù... :think:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa