Java用scanner实现交互,要求输入信息错误时返回重新输入

2025-05-14 02:30:15
推荐回答(2个)
回答1:

这个应该可以满足你的要求:

package com;
import java.util.Scanner;
public class TestMain {
 private static boolean File_Mail = false;
 public static void main(String[] args) throws InterruptedException {
  while (true) {
   Scanner sc = new Scanner(System.in);
   if (!File_Mail) {
    System.out.println("请输入文件名:");
    String filename = sc.next();
    if (!ValidateFile(filename, sc)) {
     continue;
    }
   }
   if (!ValidateMail(sc)) {
    File_Mail = true;
    continue;
   }
   if (Submit(sc))
    break;
  }
  System.out.println("结束");
 }
 public static boolean ValidateFile(String filename, Scanner sc) {
  System.out.println("正在验证文件名称的合法性.....");
  if (!filename.endsWith(".java")) {
   System.out.println("您输入的文件名不合法!");
   return false;
  } else {
   System.out.println("文件名验证成功!请输入邮箱地址:");
  }
  return true;
 }
 public static boolean ValidateMail(Scanner sc) {
  String mailname = sc.next();
  System.out.println("正在检验邮箱地址的合法性.....");
  if (mailname.indexOf("@") < 0
    || mailname.indexOf("@") > mailname.indexOf(".")) {
   System.out.println("您输入的邮箱名称有误,请重新输入:");
   return false;
  } else {
   System.out.println("邮箱名称验证成功!是否提交(Y/N)");
  }
  return true;
 }
 public static boolean Submit(Scanner sc) {
  String press = sc.next();
  if ("Y".equals(press)) {
   System.out.println("请稍候........");
   System.out.println("您已成功提交作业");
  } else {
   System.out.println("您已取消提交作业");
  }
  return true;
 }
}

 望采纳。谢谢。

回答2:

return 错了。return就跳出了,我帮你稍微封装一下,稍等。