因此该程序应该读取您在TUI中输入的DanceName,读取两个csv文件,该文件遵循以下思想:DanceName(\ t)(任意数量的空格)Performer / groupName,(空格或无空格)Performer /组的名字。如果DanceName之后有一个groupName,则应该转到另一个CSV文件并读取groupName中的所有表演者。如果在逗号后面有一个空格,则表演者可以正常工作。但是,如果没有一个,它只会打印出groupName
public String listAllDancersIn(String dance) {
// get CSV file for dances Data
Set<String> dancesData = new TreeSet<>(getCSV("src/csvFiles/danceShowData_dances.csv"));
String result = "";
// for each line in dances csv file
for (String line : dancesData) {
// split into two sections - [0] is name of dance & [1] is dancers
String[] splitByTab = line.split("\t");
splitByTab[0] = splitByTab[0].trim();
// if name of dance matches given dance name
if (splitByTab[0].equals(dance)) {
// split names of dancers into individual strings
String[] separatedNames = splitByComma(splitByTab[1]);
// iterate through names
for (int i = 0; i < separatedNames.length; i++) {
// append result with output of getDanceGroupMembers (and trim input)
result += ", " + getDanceGroupMembers(separatedNames[i].trim());
}
}
}
// remove leading comma and space
result = result.substring(2);
return result;
}
public String[] splitByComma(String names) {
return names.split(", ");
}
public String getDanceGroupMembers(String name) {
// get dance group data
Set<String> danceGroupsData = new TreeSet<>(getCSV("src/csvFiles/danceShowData_danceGroups.csv"));
// result by default is just name of given
String result = name;
// iterate iterate
for (String line : danceGroupsData) {
String[] splitByTab = line.split("\t");
// if, at any point, name of dance group is equal to given name
if (splitByTab[0].equals(name) ) {
// return names of dancers in group
result = getDanceGroupMembers(splitByTab[1]);
}
}
return result;
}
答案 0 :(得分:2)
如果在表演者后面有一个空格,那么它可以正常工作。 但是,如果没有一个,它只会打印出groupName。
那是因为你在做,
names.split(", ");
而非names.split(",");
您应该做的是
names.split(",");
在逗号上分割trim()
修剪空白。