Java - 三元运算符不工作。编译器声明它不是语句

Java - ternary Operator not working. Compiler stating it's not a statement

(unprocessed_information.replace("type:","").equals("teacher")) ? 
                                                 (admin_accounts.add(username)) : (null);

表明它是 not a statement 的信息;这可以用 if 语句来完成,但如果使用三元运算符来完成,效率会好得多;

如果有人能告诉我这个声明有什么问题。非常感谢。

功能代码:https://hastebin.com/heriqoripi.vbs

函数信息 o - A class 有一个充满字符串的数组,它使用 for-each 循环剪切信息以创建帐户(我还没有进行加密,因为我还不知道如何进行哈希加密。)

private void update_accounts() throws IOException{
    String[] contents_Of_File = fileHandling.retrieve_contents();
    String username =  "";
    String password = "";
    String unprocessed_information = "";
    int char_count = 0;
    account_information = new HashMap<>();

    if(contents_Of_File == null){
        System.out.println("The contents of the file is empty" );}
    else{
        for(String S : contents_Of_File){
            if(S != null){
                for(char c : S.toCharArray()){
                    char_count++;
                    if(c == delimiter || c == fileHandling.getDelimiter()){
                        if(unprocessed_information.contains("username:")){username = unprocessed_information.replace("username:", "");}
                        if(unprocessed_information.contains("password:")){password = unprocessed_information.replace("password:","");}
                        unprocessed_information="";}
                    else if(char_count == S.length()){
                        unprocessed_information += c;
                        if(unprocessed_information.contains("type:")){
                            ( unprocessed_information.replace("type:","").equals("teacher") ) ? (admin_accounts.add(username)) : (null);
                        }
                        unprocessed_information="";
                        }
                    else{
                        unprocessed_information += c;}
                    }

                if(! account_information.containsKey(username)){
                    System.out.println("o SYSTEM - username:" + username + ", password:" + password + " - have been inputted into the databse.");}
                account_information.put(username, password);
                unprocessed_information = "";
                char_count = 0;}
            else{break;} 
        }
   }
}

三元运算符表达式不是语句:您不能单独使用它们来替代 if

你应该写

if (unprocessed_information.contains("type:")) {
    ( unprocessed_information.replace("type:","").equals("teacher") ) ? (admin_accounts.add(username)) : (null);
}

如:

if (unprocessed_information.contains("type:")) {
    if (unprocessed_information.replace("type:","").equals("teacher")) admin_accounts.add(username);
}

或(更好,因为第一个 if 中没有任何内容,但第二个 if):

if (    unprocessed_information.contains("type:")
     && unprocessed_information.replace("type:","").equals("teacher") ) {
    admin_accounts.add(username);
}

或(恕我直言更好,因为它方式更清晰):

if (   unprocessed_information.equals("type:teacher")
    || unprocessed_information.equals("ttype:eacher") 
    || unprocessed_information.equals("tetype:acher") 
    || unprocessed_information.equals("teatype:cher") 
    || unprocessed_information.equals("teactype:her") 
    || unprocessed_information.equals("teachtype:er") 
    || unprocessed_information.equals("teachetype:r") 
    || unprocessed_information.equals("teachertype:") ) {
    admin_accounts.add(username);
}

;-)