Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 读取凌乱的CSV文件_Java - Fatal编程技术网

Java 读取凌乱的CSV文件

Java 读取凌乱的CSV文件,java,Java,因此,程序应该读取您在TUI中输入的DanceName,读取两个csv文件,这两个文件遵循以下理念:DanceName(\t)(任意大小的空格)Performer/groupName,(空格或无空格)Performer/groupName。如果DanceName之后有一个组名,则应该转到另一个CSV文件并读取组名中的所有执行者。如果在逗号后有一个空格在执行者之后,它可以正常工作。但如果没有,它只打印组名 public String listAllDancersIn(String dance) {

因此,程序应该读取您在TUI中输入的DanceName,读取两个csv文件,这两个文件遵循以下理念:DanceName(\t)(任意大小的空格)Performer/groupName,(空格或无空格)Performer/groupName。如果DanceName之后有一个组名,则应该转到另一个CSV文件并读取组名中的所有执行者。如果在逗号后有一个空格在执行者之后,它可以正常工作。但如果没有,它只打印组名

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,我们不得不在大学里使用这种方法