Java 如何忽略返回字符

Java 如何忽略返回字符,java,exception-handling,Java,Exception Handling,我编写了这段代码,因此如果用户按enter键,它将抛出自定义异常 另一方面,它将返回用户条目。但是当我第一次运行此代码时,不管它是空的还是字符串,此代码都会抛出自定义异常。不知道如何修复此问题 public static String validEmpty(Scanner sc, String prompt) { String userEntry = null; Boolean isValid = true; while (isValid) {

我编写了这段代码,因此如果用户按enter键,它将抛出自定义异常 另一方面,它将返回用户条目。但是当我第一次运行此代码时,不管它是空的还是字符串,此代码都会抛出自定义异常。不知道如何修复此问题

public static String validEmpty(Scanner sc, String prompt)
{
    String userEntry = null;
    Boolean isValid  = true;

    while (isValid)
    {
        System.out.print(prompt);
        try 
        {
            if ((userEntry=sc.nextLine()).isEmpty())
                throw new CustomException();
            else
                return userEntry;
        }
        catch (InputMismatchException e)
        {
            sc.nextLine(); 
            System.out.println("Error! Name must be alphabets only!");
        }
        catch (CustomException e)
        {
            sc.nextLine(); 
            System.out.println("Error! Entry Cannot Be blank!");
        }
    }
    return userEntry;
}

是否尝试删除行尾str=str.replace\r、.replace\n、,;你有没有逐条查过密码。。另外,请看一下前面的stackoverflow帖子,为您提供一些备选方案。这是Java应用程序还是C winforms或C Console应用程序?此代码在我第一次运行此代码时引发自定义异常[…]这是您在调用nextLine之前调用nextLine之类的扫描程序方法的症状。如果该问答不能帮助您解决问题,您应该向我们提供答案。是的,我尝试过,但无效。请尝试用If替换ifuserEntry=sc.nextLine.isEmpty!scanner.hasNextLine和else返回userEntry=scanner.nextLine