我如何 运行 一个方法 Boolean: checkUserName();此方法确保任何用户名包含下划线 (_) 且不超过 5 个字符

How do I run a method Boolean: checkUserName(); This method ensures that any username contains an under score (_) and is no more than 5 characters

这是我目前拥有的代码。它没有 运行。该方法似乎没有获取输入字符串并对其进行处理。

import java.util.Scanner;  // Import the Scanner class
import java.util.*;
import java.lang.*;
import java.io.*;

class Main
{
    boolean checkUserName(){
        boolean underscore; // declaring boolean variable(True or False)
        //if statement, conditional 
        underscore=userName.contains("_");//checking if the userName does indeed contain an Underscore(_)
        if (userName.length()<5 && underscore==true) {
            System.out.println("Username successfully captured");    
        
        }
    }    
    public static void main(String[] args) {
        Scanner name1 = new Scanner(System.in);  // Create a Scanner object
        System.out.println("Enter username");
        String userName;
        userName= name1.nextLine(); // Read user input
        checkUserName(userName);
    }
}

您的代码中有几个问题。

  1. checkUserName 必须是静态的,因为它是由静态方法直接调用的,在本例中是您的 main 方法。

  2. checkUserName 需要输入

  3. 'userName.length()<5'表示任何小于5的数,5不小于5

  4. checkUserName 需要一个布尔值 return,如果您不需要 return,请将其更改为 void。

  5. 尽量取更好的名字,例如hasUnderscore会比underscore

    static boolean checkUserName(String userName) {
        boolean underscore = userName.contains("_");
        if (userName.length() <= 5 && underscore == true) {
            System.out.println("Username successfully captured");
            return true;
        }
        return false;
    }
    
    public static void main(String[] args) {
        Scanner name1 = new Scanner(System.in); // Create a Scanner object
        System.out.println("Enter username");
        String userName;
        userName = name1.nextLine(); // Read user input
        checkUserName(userName);
    
    }
    

欢迎来到Java