我应该在包含许多不同电子邮件地址的文件中读取并使用数组打印出来.问题是我需要消除重复的电子邮件.
我能够让我的try/catch工作并打印出电子邮件地址.但是,我不知道如何删除重复项.我不了解哈希码或如何使用哈希码Set.任何援助将不胜感激.
这是我到目前为止:
import java.util.Scanner;
import java.io.*;
public class Duplicate {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter file name: ");
String fileName = keyboard.nextLine();
if (fileName.equals("")) {
System.out.println("Error: User did not specify a file name.");
} else {
Scanner inputStream = null;
try {
inputStream = new Scanner(new File(fileName));
} catch (FileNotFoundException e) {
System.out.println("Error: " + fileName + " does not exist.");
System.exit(0);
}
String[] address = new String[100];
int i …Run Code Online (Sandbox Code Playgroud) 所以给了我一组电子邮件,我应该读取它们,将它们存储在一个数组中,删除重复项,并打印"剩菜".我几乎能够做到这一点,但删除重复后,当我打印剩余的时,它会打印一个额外的null.
这是我的代码.有人能指出我修复它的方向吗?
public class Duplicate {
public static void main(String [] args){
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter file name: ");
String fileName = keyboard.nextLine();
if(fileName.equals("")){
System.out.println("Error: User did not specify a file name.");
}
else{Scanner inputStream = null;
try{inputStream = new Scanner(new File(fileName));
}
catch(FileNotFoundException e){
System.out.println("Error: "+ fileName + " does not exist.");
System.exit(0);
}
String [] address = new String[100];
for(int i=0;inputStream.hasNextLine();i++){
String email = inputStream.nextLine();
address[i]=email.toLowerCase();
//System.out.println(address[i]);
}
Set<String> mail = new HashSet<String>(Arrays.asList(address));
for(String …Run Code Online (Sandbox Code Playgroud)