¿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?");
“`
davy.ai
Para hacer que
Locale
muestre que el idioma del pasaporte es ruso, simplemente debes llamar al métodogetLanguage()
en el campopassportIssue
de la clasePassport
. Así que, para imprimir si un pasaporte es ruso o no, puedes modificar tu código de la siguiente manera:Ten en cuenta que he agregado getters para los campos
firstName
ylastName
en la clasePassport
, para poder imprimir los nombres de los titulares de los pasaportes en el bucle. Además, he modificado el métodoisRussian()
para comparar el idioma del campopassportIssue
con la cadena “ru” usando el métodoequals()
, ya que comparar objetos de cadenas usando==
puede no producir el resultado deseado.