JAVA搜索用户输入的电子邮件ID



我是编程新手,必须做一些功课,但我被卡住了。我需要这样做:

作为开发人员,编写一个程序,从字符串数组中搜索用户输入的字符串。

问题陈述的背景:您有一系列员工的电子邮件ID。作为一名程序员,编写一个程序来搜索用户输入的电子邮件ID。

我有我的ArrayList,但现在我想能够在控制台中输入电子邮件地址&程序应该检查输入的电子邮件地址是否在我的数组列表中。有人能帮帮我吗?我找不到这样的东西(也许我也不知道如何寻找答案(我很乐意得到任何帮助!

而不是像我在这里那样在语法中搜索元素,我想让系统询问用户的电子邮件ID并搜索我的ArrayList。如果电子邮件ID在Array List中,则输出应为:"电子邮件ID"+searcElement+";找到";否则";电子邮件ID"+searcElement+";未找到";

package searchElement;
import java.util.ArrayList;
public class searchElement {
public static void main(String[] args) {

ArrayList<String> emailID = new ArrayList<String>();

emailID.add("simon.hasler@gmx.com");
emailID.add("leonie.klein@gmx.com");
emailID.add("lea.hoch@gmx.com");
emailID.add("max.neumann@gmx.com");
emailID.add("henrik.fiesler@gmx.com");
emailID.add("laura.kramm@gmx.com");
emailID.add("sabine.neuwirth@gmx.com");


String searcElement = "simon.hasler@gmx.com";

for(int i=0; i<emailID.size(); i++) {

System.out.println(emailID.get(i));

if(searcElement==emailID.get(i)) {

System.out.println("n");

System.out.println("email ID" + searcElement + "found");

break;

}
}
}
}

首先,您需要要求用户在控制台中输入字符串。为此,您需要使用扫描仪:

// Using Scanner for Getting Input from User
Scanner sc = new Scanner(System.sc);
// Get the input back for a string 
String stringInput = sc.nextLine();
System.out.println("You entered string " + stringInput);

// Get the input back if your emailId is an int 
int intInput = sc.nextInt();
System.out.println("You entered integer " + intInput);

然后,要扫描您的arrayList并输出结果本身(无论是否找到结果,都不是布尔值(,只需在列表中循环并使用contains方法:

for (String element : emailID){
if (element.contains(stringInput)){
System.out.println(element);
}
}

如果你是编程新手,我建议你检查一下那些扫描仪,它包含的东西,这样你就可以了解它是如何工作的,而不是在没有任何理解的情况下复制粘贴它。

当您对编程更加熟悉时,另一种达到这一结果的方法是将Java流过滤器与Lambda一起使用。

我希望这能有所帮助。

java.util.Scanner用于获取控制台输入

package searchElement;
import java.util.ArrayList;
import java.util.Scanner;
public class searchElement {
public static void main(String[] args) {

ArrayList<String> emailID = new ArrayList<String>();

emailID.add("simon.hasler@gmx.com");
emailID.add("leonie.klein@gmx.com");
emailID.add("lea.hoch@gmx.com");
emailID.add("max.neumann@gmx.com");
emailID.add("henrik.fiesler@gmx.com");
emailID.add("laura.kramm@gmx.com");
emailID.add("sabine.neuwirth@gmx.com");

// new code
String searcElement = null;
System.out.println("Enter the email to search");
Scanner sc = new Scanner(System.in);
searchElement = sc.NextLine();

if (searchElement == null) {
System.out.println("You haven't entered an email");
return;
}
for(int i=0; i<emailID.size(); i++) {

System.out.println(emailID.get(i));

if(searcElement==emailID.get(i)) {

System.out.println("n");

System.out.println("email ID" + searcElement + "found");

break;

}
}
}
}

使用ArrayList.contains和Scanner。

Scanner input = new Scanner(System.in);
System.out.println("Enter email: ");
String searcElement = input.nextLine(); //Should probably be "searchElement" right?"
if(emailID.contains(searcElement)){
return "email ID" + searcElement + "found";
}
else{
return "email ID" + searcElement + "not found";
}

这里还有一个解决方案,使用正则表达式进行验证并流式传输以检查是否存在

String searchElement;
System.out.println("E-mail: ");
Scanner scanner = new Scanner(System.in);
searchElement = scanner.nextLine();
String regex = "^(.+)@(.+)$";
Matcher matcher = Pattern.compile(regex).matcher(searchElement);
if (matcher.matches() && emailID.stream().anyMatch(mail -> mail.equals(searchElement))) {
System.out.println(searchElement + " = is present");
} else {
System.out.println("Not a valid or is not present");
}

相关内容

  • 没有找到相关文章