es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo obtener una salida correcta de Locale?

Cómo puedo hacer que la clase Locale muestre que el idioma del pasaporte es ruso, y para cada elemento en la lista de arreglos, llamar al método isRussian():

public class Passport implements Comparable<passport> {
    private String firstName;
    private String lastName;
    private Locale passportIssue;

    // constructor
    public Passport(String firstName, String lastName, Locale passportIssue) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.passportIssue = passportIssue;
    }

    // método
    public boolean isRussian() {
        if (passportIssue == "ru") {
            return true;
        }
        return false;
    }
}

Esto es lo que he intentado:

“`java
List<passport> pass = new ArrayList<>();
Locale a = new Locale("ru");

Passport p = new Passport("Erika", "Ivanovich", new Locale("ru"));
Passport p1 = new Passport("Kemal", "Remzi", Locale.ENGLISH);
Passport p2 = new Passport("Ivana", "Bogdan", new Locale("ru"));

pass.add(p);
pass.add(p1);
pass.add(p2);

System.out.println("¿Es el pasaporte " + p.getPassIssue() + " ruso?");
“`

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para hacer que Locale muestre que el idioma del pasaporte es ruso, simplemente debes llamar al método getLanguage() en el campo passportIssue de la clase Passport. Así que, para imprimir si un pasaporte es ruso o no, puedes modificar tu código de la siguiente manera:

    List<passport> pass = new ArrayList<>();
    
    Passport p = new Passport("Erika", "Ivanovich", new Locale("ru")); 
    Passport p1 = new Passport("Kemal", "Remzi", Locale.ENGLISH);
    Passport p2 = new Passport("Ivana", "Bogdan", new Locale("ru"));
    
    pass.add(p);
    pass.add(p1);
    pass.add(p2);
    
    for(Passport passport : pass) {
        if(passport.getPassIssue().getLanguage().equals("ru")) {
            System.out.println(passport.getFirstName() + " " + passport.getLastName() + " tiene un pasaporte ruso.");
        } else {
            System.out.println(passport.getFirstName() + " " + passport.getLastName() + " no tiene un pasaporte ruso.");
        }
    
        System.out.println("¿Es el pasaporte " + passport.getPassIssue() + " ruso? " + passport.isRussian());
    }
    

    Ten en cuenta que he agregado getters para los campos firstName y lastName en la clase Passport, para poder imprimir los nombres de los titulares de los pasaportes en el bucle. Además, he modificado el método isRussian() para comparar el idioma del campo passportIssue con la cadena “ru” usando el método equals(), ya que comparar objetos de cadenas usando == puede no producir el resultado deseado.

Comments are closed.