我已经为这项作业苦苦挣扎了几天。我能够导入另一个仅包含姓氏的文本文件,但是对于男孩名字,每个名字之前都有一个数字,一个句点和一个空格。
每个名称后面还有一个选项卡。大多数情况下,女孩的名字只是用空格分开,但是在某些名字之间随机有一个制表符。男孩和女孩的名字很难用新行分开,而且主要是长行。
这是男孩文本文件上的名称的样子
(没有出现标签,所以我在应该有标签的地方加上了“ \ t”)
这是女孩文本文件上的名称
(没有出现标签,所以我在应该有标签的地方加上了“ \ t”)
艾玛·奥利维亚\ t艾娃·伊莎贝拉·索菲亚\ t米娅·夏洛特\ t艾米莉亚\ t伊夫琳·阿比盖尔·哈珀·艾米丽\ t伊丽莎白\ t艾利
public static void main(String[] args) throws IOException {
FileReader fr = new
FileReader("C:\\Users\\siegh\\Desktop\\lastNames0219.txt");
FileReader fr1 = new
FileReader("C:\\Users\\siegh\\Desktop\\boyNames0219.txt");
FileReader fr2 = new
FileReader("C:\\Users\\siegh\\Desktop\\girlsNames0219.txt");
BufferedReader br = new BufferedReader(fr);
BufferedReader br1 = new BufferedReader(fr1);
BufferedReader br2 = new BufferedReader(fr2);
String line = "";
/*String[] tokens = str.split("\t")
*String[] tokens = str.split("\t");
*String[] tokens = str.split("\n");
*String[] tokens = str.split("[\t, \n]");
*/
ArrayList<Names> lastNames = new ArrayList<>();
while ((line = br.readLine()) != null) {
String[] tokens = line.split(" ");
Names n = new Names();
n.lastName = tokens[0];
lastNames.add(n);
}
ArrayList<Names> boysNames = new ArrayList<>();
while ((line = br1.read()-*) != null) {
String[] tokens = line.split("[,\t,.]+");
Names bn = new Names();
bn.firstNameBoy = tokens[0];
boysNames.add(bn);
}
ArrayList<Names> girlsNames = new ArrayList<>();
while ((line = br2.readLine()) != null) {
String[] tokens = line.split("[., ]");
Names gn = new Names();
gn.firstNameGirl = tokens[0];
girlsNames.add(gn);
}
StringBuilder javaText = new StringBuilder();
javaText.append("String[] firstNameBoy = { ");
for (Names bn: boysNames) {
javaText.append('\"' + bn.firstNameBoy.replaceFirst("", "") +
"\", ");
}
javaText.append("};");
StringBuilder javaText1 = new StringBuilder();
javaText1.append("String[] firstNameGirl = { ");
for (Names gn: girlsNames) {
javaText1.append('\"' + gn.firstNameGirl.replaceFirst("", "") +
"\", ");
}
javaText1.append("};");
StringBuilder javaText2 = new StringBuilder();
javaText2.append("String[] lastName = {");
for (Names n: lastNames) {
javaText2.append('\"' + n.lastName.replaceFirst(" ", "") + "\",
");
}
javaText2.append("};");
System.out.println(javaText);
// System.out.println();
// System.out.println();
// System.out.println(javaText1);
// System.out.println();
// System.out.println();
// System.out.println(javaText2);
}
}
最终目标是拥有1200个名称的数组。 600个男孩名字和600个女孩名字,每个名字随机附有姓氏。
这是我运行代码时最终得到的。
String [] firstNameBoy = {“ 1”,};