如何比较 100 个字符串记录,它们应该具有 3 个值,即 true、false 或 null
How to Compare 100 String records which should have either 3 values i.e. true,False or null
我正在尝试比较 100 条记录的列表应该是“true”、false 或 null。
我已经获取了数组中列表的所有值,其中有 100 条记录,例如 [0]-true,[1]-true,[2]-false,...等等。
现在我想创建一个方法来比较值列表应该至少具有 三个值中的任何一个,即 true、false 或 null。 如果满足此条件那么该方法应该 return true.
and 如果所有 list 的值都是 false 那么它应该 return 假.
但是我创建的方法总是检查第一个索引值。
这里的列表中有字符串值。有人可以帮我完成这个作业吗?谢谢
public boolean isAllRecordsAreValid (String []list) {
boolean ret= false;
for (int i=0;i<list.length; i++){
if ( list[i].equals("true")&& list[i].equals(null)&&list.equals("false")){
return false ;
}
return true;
}
return ret;
}
据我了解,你有两个案例可以涵盖三个场景。因此,如果您的数组包含与“至少一个真、假和空”或“全假”不同的值,则您的问题不清楚必须返回什么值。因此,您可以为第三种情况引发异常(例如,数组仅包含 true
值或仅包含 false
值等)
另外不清楚你指的是字符串“null”还是空值。没有这些信息,很难理解如何更好地提供帮助,但我认为您可以使用此代码更好地指导自己:
public class A {
public boolean isAllRecordsAreValid (String []list) {
boolean hasNull = false;
boolean hasTrue = false;
boolean hasFalse = false;
boolean allAreFalse = true;
for (int i=0;i<list.length; i++) {
if( list[i] == null || list[i].equals("null") ){
hasNull = true;
allAreFalse = false;
} else if( list[i].equals( "true" ) ){
hasTrue = true;
allAreFalse = false;
} else if( list[i].equals( "false" ) ){
hasFalse= true;
}
if( hasNull && hasTrue && hasFalse ) {
return true;
}
}
if( allAreFalse ){
return false;
}else{
throw new UnsupportedOperationException("The array is not supported");
}
}
public static void main(String[] args) {
String[] test1 = {"true", "false", null};
String[] test2 = {"true", "false", "null"};
String[] test3 = {"false", "false", "false"};
String[] test4 = {"true", "true", "true"};
A a = new A();
System.out.println( "test1: "+ a.isAllRecordsAreValid( test1 ) );
System.out.println( "test2: "+ a.isAllRecordsAreValid( test2 ) );
System.out.println( "test3: "+ a.isAllRecordsAreValid( test3 ) );
System.out.println( "test4: "+ a.isAllRecordsAreValid( test4 ) );
}
}
我正在尝试比较 100 条记录的列表应该是“true”、false 或 null。
我已经获取了数组中列表的所有值,其中有 100 条记录,例如 [0]-true,[1]-true,[2]-false,...等等。
现在我想创建一个方法来比较值列表应该至少具有 三个值中的任何一个,即 true、false 或 null。 如果满足此条件那么该方法应该 return true.
and 如果所有 list 的值都是 false 那么它应该 return 假.
但是我创建的方法总是检查第一个索引值。
这里的列表中有字符串值。有人可以帮我完成这个作业吗?谢谢
public boolean isAllRecordsAreValid (String []list) {
boolean ret= false;
for (int i=0;i<list.length; i++){
if ( list[i].equals("true")&& list[i].equals(null)&&list.equals("false")){
return false ;
}
return true;
}
return ret;
}
据我了解,你有两个案例可以涵盖三个场景。因此,如果您的数组包含与“至少一个真、假和空”或“全假”不同的值,则您的问题不清楚必须返回什么值。因此,您可以为第三种情况引发异常(例如,数组仅包含 true
值或仅包含 false
值等)
另外不清楚你指的是字符串“null”还是空值。没有这些信息,很难理解如何更好地提供帮助,但我认为您可以使用此代码更好地指导自己:
public class A {
public boolean isAllRecordsAreValid (String []list) {
boolean hasNull = false;
boolean hasTrue = false;
boolean hasFalse = false;
boolean allAreFalse = true;
for (int i=0;i<list.length; i++) {
if( list[i] == null || list[i].equals("null") ){
hasNull = true;
allAreFalse = false;
} else if( list[i].equals( "true" ) ){
hasTrue = true;
allAreFalse = false;
} else if( list[i].equals( "false" ) ){
hasFalse= true;
}
if( hasNull && hasTrue && hasFalse ) {
return true;
}
}
if( allAreFalse ){
return false;
}else{
throw new UnsupportedOperationException("The array is not supported");
}
}
public static void main(String[] args) {
String[] test1 = {"true", "false", null};
String[] test2 = {"true", "false", "null"};
String[] test3 = {"false", "false", "false"};
String[] test4 = {"true", "true", "true"};
A a = new A();
System.out.println( "test1: "+ a.isAllRecordsAreValid( test1 ) );
System.out.println( "test2: "+ a.isAllRecordsAreValid( test2 ) );
System.out.println( "test3: "+ a.isAllRecordsAreValid( test3 ) );
System.out.println( "test4: "+ a.isAllRecordsAreValid( test4 ) );
}
}