Ich mache eine Zuweisung in Java, die erfordert, dass wir zwei verschiedene Dateien lesen. Einer hat die Top 1000 Jungennamen und der andere die Top 1000 Mädchennamen. Wir müssen ein Programm schreiben, das alle Namen zurückgibt, die in beiden Dateien sind. Wir müssen jeden Jungen- und Mädchennamen als String lesen, die Anzahl der Namen ignorieren und sie zu einem HashSet hinzufügen. Beim Hinzufügen zu einem HashSet gibt die add -Methode false zurück, wenn der hinzuzufügende Name bereits im HashSet vorhanden ist. Um also die gebräuchlichen Namen zu finden, müssen Sie nur nachverfolgen, welche Namen beim Hinzufügen false zurückgegeben haben. Mein Problem ist, dass ich nicht herausfinden kann, wie man die Anzahl der Namen in jeder Datei ignoriert. Mein HashSet enthält beides, und ich möchte nur die Namen.Ignoriere Zahlen in einer Textdatei, wenn ich sie in Java scanne
Hier ist was ich bisher habe.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Names {
public static void main(String[] args) {
Set<String> boynames = new HashSet<String>();
Set<String> girlnames = new HashSet<String>();
boynames = loadBoynames();
System.out.println(girlnames);
}
private static Set<String> loadBoynames() {
HashSet<String> d = new HashSet<String>();
File names = new File("boynames.txt");
Scanner s = null;
try {
s = new Scanner(names);
} catch (FileNotFoundException e) {
System.out.println("Can't find boy names file.");
System.exit(1);
}
while(s.hasNext()){
String currentName = s.next();
d.add(currentName.toUpperCase());
}
return d;
}
}
Mein Plan ist es, die HashSet zu nehmen, die ich zur Zeit die Mädchen Namen zu ihm haben, und fügen Sie, aber bevor ich brauche ich nicht die Zahlen in meinem HashSet haben.
Ich versuchte Zahlen mit diesem Code zu überspringen, aber es spuckte nur Fehler aus
while(s.hasNextLine()){
if (s.hasNextInt()){
number = s.nextInt();
}else{
String currentName = s.next();
d.add(currentName.toUpperCase());
}
}
Jede Hilfe würde geschätzt.
gibt es ein genaues Muster? Wie "Name - Nummer"? Wenn ja, könnten Sie die Datei einfach teilen. 'String line = s.next() .split (" - ") [0]'. Gleiches gilt für Leerzeichen und Kommas. Zeigen Sie nur ein paar Zeilen dieser Datei –