請求:
登録操作をシミュレートします。ユーザー名がすでに存在する場合は、例外がスローされ、ユーザー名が登録されているというプロンプトが表示されます。
分析:
1)配列を使用して登録登録名を保存します
2)スキャナーでユーザーが入力した登録ユーザー名を取得します
3)ユーザー入力で登録名を判断する方法を定義します登録ユーザー名をトラバースして保存します各ユーザーのユーザー名。取得したユーザー名とユーザーが入力したユーザー名を使用して
trueを比較します。
ユーザー名は既に存在し、RegisterFailedExceptionがスローされて、「ユーザー名が登録されました」とユーザーに通知されます
。false:
続行比較を横断する。
ループが終わったならば、それはまだ重複のユーザー名を見つけていない、ユーザー思い出させる「正常に登録を!」
成し遂げる:
import com.sun.deploy.association.RegisterFailedException;
import java.util.Scanner;
public class Register {
//使用数组保存已经注册过的用户名
static String[] usernames = {"张三", "李四", "王五", "赵六"};
public static void main(String[] args) throws RegisterFailedException {
//使用Scanner获取用户用户输入注册的用户名
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要注册的用户名");
String username = sc.next();
checkUsername(username);
}
//定义一个方法,对用户输入中注册名进行判断
public static void checkUsername(String username) throws RegisterFailedException {
//遍历已经注册过的用户名,获取每一个用户名
for (String name : usernames) {
//使用获取到的用户名和输入的用户名进行比较
if (username.equals(name)) {
//用户名已经存在,抛出RegisterFailedException异常,告知用户"该用户名已经被注册”;使用throw声明处理
throw new RegisterFailedException("该用户名已经被注册");
}
}
System.out.println("注册成功!");
}
}
結果:
请输入你要注册的用户名
李四
Exception in thread "main" com.sun.deploy.association.RegisterFailedException: 该用户名已经被注册
at demo01.Register.checkUsername(Register.java:40)
at demo01.Register.main(Register.java:29)