Java 数组中的True或False
我有3个数组,其中包含一些信息Java 数组中的True或False,java,arrays,Java,Arrays,我有3个数组,其中包含一些信息 String[] personages = {"Tya", "Milo", "Lili"}; int[] ages = {21,30,15}; int[] sex = {1,2,1}; // 1 = Woman & 2 - Man 当我想显示每个信息时,我想在sex数组中显示值true或false 例如,值1表示女性,值2表示男性 我希望得到这个最终结果: Personage 1 : Nam
String[] personages = {"Tya", "Milo", "Lili"};
int[] ages = {21,30,15};
int[] sex = {1,2,1}; // 1 = Woman & 2 - Man
当我想显示每个信息时,我想在sex
数组中显示值true
或false
例如,值1表示女性,值2表示男性
我希望得到这个最终结果:
Personage 1 : Name Tya | Age : 21 | Sex : False
Personage 2: Name Milo | Age : 30 | Sex : True
Personage 3: Name Lili | Age : 15 | Sex : False
我有一条错误消息=>“错误:一条语句不是真的;”
您需要声明将包含布尔值的变量
bool isMale = sex[i] == 1;
然后
System.out.println("Personage " + (i+1) + " : " + personages[i] + " | age : " + ages[i] + " | sex : " + isMale);
只需将它的数组替换为布尔数组:
boolean[] sex = {false,true,false};
并打印:
for(int i=0; i<personages.length; i++){
System.out.println("Personage " + (i+1) + " : " + personages[i] + " | age : " + ages[i] + " | sex : " + sex[i]);
}
以及性别的枚举:
public enum Gender {
MALE,
FEMALE;
}
然后是这些对象的列表:
List<Person> personages = new ArrayList<>();
请这样做:
for(int i=0; i<personages.length; i++){
Boolean sexField = sex[i] == 1;
System.out.println("Personage " + (i+1) + " : " + personages[i] + " | age : " +
ages[i] + " | sex : " + sexField);
}
for(int i=0;i您的问题的答案是使用高级枚举(请随意用适当的术语替换)
这样做的目的是构造一个枚举,该枚举可以通过Sex.MALE
或Sex.FEMALE
进行寻址,该枚举具有一个内部变量sexAsBoolean
,该变量设置为枚举的参数-因此对于男性sexAsBoolean==false
和女性sexAsBoolean==true
作为一个重要的补充说明:
以下是一个明显的迹象,表明你实际上在做一些“错误的事情”——收集你知道它们属于一起的价值,而不是将它们放在一起——特别是如果人物[0]属于年龄[0]和性别[0]
String[] personages = {"Tya", "Milo", "Lili"};
int[] ages = {21,30,15};
int[] sex = {1,2,1}; // 1 = Woman & 2 - Man
那么你真正想要的是:
public class Personage {
String name;
int age;
Sex sex; // This is the enum we wrote above.
}
public class Person {
final String name;
final int age;
final Gender gender;
public Person(String name, int age, Others_git.Gender gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
@Override
public String toString() {
return "Name "+this.name+ "| Age : "+this.age + " | Sex : "+this.gender;
}
}
public class Main {
public static void main(String[] args) {
List<Person> personages = new ArrayList<>();
personages.add(new Person("Tya", 21, Gender.FEMALE));
personages.add(new Person("Milo", 21, Gender.MALE));
personages.add(new Person("Lili", 21, Gender.FEMALE));
for(int i=0; i<personages.size(); i++){
System.out.println("Personage " + (i+1) + " : " + personages.get(i));
}
}
}
Personage 1 : Name Tya| Age : 21 | Sex : FEMALE
Personage 2 : Name Milo| Age : 21 | Sex : MALE
Personage 3 : Name Lili| Age : 21 | Sex : FEMALE
for(int i=0; i<personages.length; i++){
Boolean sexField = sex[i] == 1;
System.out.println("Personage " + (i+1) + " : " + personages[i] + " | age : " +
ages[i] + " | sex : " + sexField);
}
public enum Sex {
MALE(false), FEMALE(true);
boolean sexAsBoolean;
public Sex(boolean flag) {
this.sexAsBoolean = flag;
}
@Override
public String toString() {
return String.valueOf(flag);
}
}
String[] personages = {"Tya", "Milo", "Lili"};
int[] ages = {21,30,15};
int[] sex = {1,2,1}; // 1 = Woman & 2 - Man
public class Personage {
String name;
int age;
Sex sex; // This is the enum we wrote above.
}