如何比较 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 ) );
    }
}