Java 读取凌乱的CSV文件
因此,程序应该读取您在TUI中输入的DanceName,读取两个csv文件,这两个文件遵循以下理念:DanceName(\t)(任意大小的空格)Performer/groupName,(空格或无空格)Performer/groupName。如果DanceName之后有一个组名,则应该转到另一个CSV文件并读取组名中的所有执行者。如果在逗号后有一个空格在执行者之后,它可以正常工作。但如果没有,它只打印组名Java 读取凌乱的CSV文件,java,Java,因此,程序应该读取您在TUI中输入的DanceName,读取两个csv文件,这两个文件遵循以下理念:DanceName(\t)(任意大小的空格)Performer/groupName,(空格或无空格)Performer/groupName。如果DanceName之后有一个组名,则应该转到另一个CSV文件并读取组名中的所有执行者。如果在逗号后有一个空格在执行者之后,它可以正常工作。但如果没有,它只打印组名 public String listAllDancersIn(String dance) {
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;
}
public String listallnessin(弦乐舞蹈){
//获取数据的CSV文件
Set dancesData=新树集(getCSV(“src/csvFiles/danceShowData_dances.csv”);
字符串结果=”;
//对于csv文件中的每一行
用于(字符串行:dancesData){
//分成两部分-[0]是舞蹈的名称,[1]是舞蹈演员
String[]splitByTab=line.split(“\t”);
splitByTab[0]=splitByTab[0]。修剪();
//如果舞蹈名称与给定的舞蹈名称匹配
if(splitByTab[0].equals(舞蹈)){
//将舞者的名字分成单独的字符串
String[]separatedNames=splitByComma(splitByTab[1]);
//遍历名称
for(int i=0;i
如果在逗号后有一个空格在执行者之后,它可以正常工作。
但如果没有,它只打印组名
那是因为你在做,
name.split(“,”)代码>和非名称。拆分(“,”代码>
你应该做的是
使用名称在逗号上拆分。拆分(“,”代码>
使用Trim()
修剪空白
提示:项目。谢谢!这似乎对未来非常有用,尽管@BasilBourque,我们不得不在大学里使用这种方法