• Martes 19 de Noviembre de 2024, 10:24

Autor Tema:  problema con toLowerCase  (Leído 2319 veces)

el_funa

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
problema con toLowerCase
« en: Viernes 14 de Mayo de 2010, 06:55 »
0
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
  1. /**
  2.  * Write a description of class Equipo here.
  3.  *
  4.  * @author (your name)
  5.  * @version (a version number or a date)
  6.  */
  7. public class Equipo
  8. {
  9.     private String marca;
  10.     private String modelo;
  11.     private String numeroSerie;
  12.     private String descripcion;
  13.     private String color;
  14.     private Wifi wifi;
  15.     private Llamada llamada;
  16.     private Mensajeria mensajeria;
  17.     private Reproductor reproductor;
  18.    
  19.     public Equipo()
  20.     {
  21.     marca=null;
  22.     modelo=null;
  23.     numeroSerie=null;
  24.     descripcion=null;
  25.     color=null;
  26.     wifi=new Wifi();
  27.     llamada=new Llamada();
  28.     mensajeria=new Mensajeria();
  29.     reproductor=new Reproductor();
  30.    
  31.     }
  32.    
  33.     public Equipo(String marca,String modelo,String numeroSerie,String descripcion,String color, Wifi wifi,Reproductor reproductor, Llamada llamada, Mensajeria mensajeria)  
  34.     {
  35.     setMarca(marca);
  36.     setModelo(modelo);
  37.     setNumeroSerie(numeroSerie);
  38.     setDescripcion(descripcion);
  39.     setColor(color);
  40.     this.wifi=wifi;
  41.     this.llamada=llamada;
  42.     this.mensajeria=mensajeria;
  43.     this.reproductor=reproductor;
  44.     }
  45.    
  46.     public String getMarca()
  47.     {
  48.     return marca;
  49.     }
  50.     public String getModelo()
  51.     {
  52.     return modelo;
  53.     }
  54.     public String getNumeroSerie()
  55.     {
  56.     return numeroSerie;
  57.     }
  58.     public String getDescripcion()
  59.     {
  60.     return descripcion;
  61.     }
  62.     public String getColor()
  63.     {
  64.     return color;
  65.     }
  66.    
  67.     public void setMarca(String marca)//nokia, sony, lg, Samsung, blackBerry o iphone
  68.     {
  69.         if(marca.toLowerCase()=="nokia")
  70.         {
  71.     this.marca=marca;
  72.     }
  73.     else{
  74.     if(marca.toLowerCase()=="sony")
  75.         {
  76.     this.marca=marca;
  77.     }
  78.    
  79.     else{
  80.     if(marca.toLowerCase()=="samsung")
  81.         {
  82.     this.marca=marca;
  83.     }
  84.     else{
  85.     if(marca.toLowerCase()=="blackberry")
  86.         {
  87.     this.marca=marca;
  88.     }
  89.     else{
  90.     if(marca.toLowerCase()=="lg")
  91.         {
  92.     this.marca=marca;
  93.     }
  94.     else{
  95.         if(marca.toLowerCase()=="iphone")
  96.         {
  97.     this.marca=marca;
  98.     }
  99.     else{
  100.         System.out.println("solamente estan estas marcas: nokia, sony, lg, Samsung, blackBerry o iphone");
  101.     }
  102. }
  103. }
  104. }
  105. }
  106. }
  107.  
  108.     }
  109.    
  110.     public void setModelo(String modelo)
  111.     {
  112.         if(modelo.length()==5)
  113.         {
  114.     this.modelo=modelo;
  115. }
  116. else{
  117. System.out.println("el numero de modelo debe ser igual a cinco (5)");
  118. }
  119.     }
  120.     public void setNumeroSerie(String numeroSerie)
  121.     {
  122.     if(numeroSerie.length()>=3)
  123.         {
  124.     this.numeroSerie=numeroSerie;
  125. }
  126. else{
  127. System.out.println("El numero de serie debe tener mas de tres (3) caracteres.");
  128. }  
  129.     }
  130.     public void setDescripcion(String descripcion)
  131.     {
  132.     if(descripcion.length()>=3)
  133.         {
  134.     this.descripcion=descripcion;
  135. }
  136. else{
  137. System.out.println("La descripcion debe tener mas de tres (3) caracteres.");
  138. }  
  139.     }
  140.     public void setColor(String color)
  141.     {
  142.         if(color.toLowerCase()=="blanco")    // AQUI ESTA EL PROBLEMA
  143.         {
  144.     this.color=color;
  145.     }
  146.     else{
  147.     if(color.toLowerCase()=="negro")
  148.         {
  149.     this.color=color;
  150.     }
  151.    
  152.     else{
  153.     if(color.toLowerCase()=="rosado")
  154.         {
  155.     this.color=color;
  156.     }
  157.     else{
  158.     if(color.toLowerCase()=="rojo")
  159.         {
  160.     this.color=color;
  161.     }
  162.     else{
  163.     if(color.toLowerCase()=="gris")
  164.         {
  165.     this.color=color;
  166.     }
  167.     else{
  168.         System.out.println("solamente estan estos colores blanco, negro , rosado, rojo o gris");
  169.     }
  170. }
  171. }
  172. }
  173. }
  174.  
  175. }
  176.    
  177.    
  178.    
  179.    
  180.     public void printEquipo()
  181.     {
  182.     System.out.println("La marca es:"+getMarca());
  183.     System.out.println("El modelo es:"+getModelo());
  184.     System.out.println("Numero de serie:"+getNumeroSerie());
  185.     System.out.println("Descripciones:"+getDescripcion());
  186.     System.out.println("El color es:"+getColor());
  187.     wifi.printWifi();
  188.     llamada.printLlamada();
  189.     mensajeria.printMensajeria();
  190.     reproductor.printReproductor();
  191.    
  192.     }
  193. }
  194.  

shadow_rev

  • Miembro MUY activo
  • ***
  • Mensajes: 397
  • Nacionalidad: co
  • Un SPARTAN no muere en combate
    • Ver Perfil
    • http://shadowrev.blogspot.com
Re: problema con toLowerCase
« Respuesta #1 en: Viernes 14 de Mayo de 2010, 16:59 »
0
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
  1. if(color.compareToIgnoreCase("blanco")==0) {
  2.   this.color=color;
  3. }
  4.  

:suerte:
Volará quien le ponga alas a sus sueños (Candidate for goddess)
Si el mal existe en este mundo, reside en el corazón de la humanidad (Edward D. Morrison - Tales of Phantasia)
Lo único que puedes cambiar del pasado, es lo que sientes por él en el presente (Lockon Stratos - Mobile Suit Gundam 00)
Ingeniero de Sistemas

posman

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: problema con toLowerCase
« Respuesta #2 en: Viernes 14 de Mayo de 2010, 19:36 »
0
Si puedes utilizar == para comparar cadenas, pero solamente cuando les asignas un valor literal

Código: Java
  1. String c1 = "hola";
  2. String c2 = "hola";
  3. if ( c1 == c2) System.out.println("Si son iguales");
  4.  

El problema viene cuando les asignas el valor como objetos
Código: Java
  1. String d1, d2;
  2. d1 = "hola";
  3. d2 = new String("hola");
  4. if ( d1 == d2 ) System.out.println("Si son iguales");
  5. else System.out.println("No son iguales");
  6.  
  7. if ( d1.equals(d2) ) System.out.println("Si son iguales");
  8. else System.out.println("No son iguales"); 
  9.  

el_funa

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: problema con toLowerCase
« Respuesta #3 en: Viernes 14 de Mayo de 2010, 22:39 »
0
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
  1. if(color.compareToIgnoreCase("blanco")==0) {
  2.   this.color=color;
  3. }
  4.  

:suerte:

gracias por la ayuda eso era lo que necesitaba :D

shadow_rev

  • Miembro MUY activo
  • ***
  • Mensajes: 397
  • Nacionalidad: co
  • Un SPARTAN no muere en combate
    • Ver Perfil
    • http://shadowrev.blogspot.com
Re: problema con toLowerCase
« Respuesta #4 en: Sábado 15 de Mayo de 2010, 00:29 »
0
Cita de: "posman"
Si puedes utilizar == para comparar cadenas, pero solamente cuando les asignas un valor literal

Código: Java
  1. String c1 = "hola";
  2. String c2 = "hola";
  3. if ( c1 == c2) System.out.println("Si son iguales");
  4.  

El problema viene cuando les asignas el valor como objetos
Código: Java
  1. String d1, d2;
  2. d1 = "hola";
  3. d2 = new String("hola");
  4. if ( d1 == d2 ) System.out.println("Si son iguales");
  5. else System.out.println("No son iguales");
  6.  
  7. if ( d1.equals(d2) ) System.out.println("Si son iguales");
  8. else System.out.println("No son iguales"); 
  9.  
Gracias por la aclaración; y ahora que lo pienso, por qué tengo esta rara sensación de dejavù... :think:
Volará quien le ponga alas a sus sueños (Candidate for goddess)
Si el mal existe en este mundo, reside en el corazón de la humanidad (Edward D. Morrison - Tales of Phantasia)
Lo único que puedes cambiar del pasado, es lo que sientes por él en el presente (Lockon Stratos - Mobile Suit Gundam 00)
Ingeniero de Sistemas

frealgagu

  • Miembro activo
  • **
  • Mensajes: 49
    • Ver Perfil
    • http://frealgagu.4shared.com
Re: problema con toLowerCase
« Respuesta #5 en: Miércoles 26 de Mayo de 2010, 16:24 »
0
Esa si no me la sabía, no sabía que se podían comparar dos String cuando se habían declarado como literales, pero aún tengo mis dudas, voy a probar a ver