删除整个数组

时间:2012-02-07 07:07:43

标签: java

我正在尝试删除包含“?”(空值)的员工记录。员工数据库看起来像

34,45,56,...,34个
45,67,34,56,56
23,45,67,?,90

使用以下代码我替换了包含“?”的整行用“0”。

public void doRemoval(String filename)
{
        contents = new Vector();
        inputstream = new FileInputStream(filename);
        br = new BufferedReader(new InputStreamReader(inputstream));
        String string = "";
        while((string = br.readLine())!= null)
        {
            String[] split = string.split(",");
            Vector vector = new Vector();
            for(int i=0; i<split.length; i++)
                vector.add(split[i].trim());
            if(vector.contains("?"))
            {
                for(int i=0; i<split.length; i++)
                    split[i] = "0";
            }
            contents.add(split);
        }

输出为
0,0,0,0,0
45,67,34,56,56
0,0,0,0,0

现在我想删除包含“0”的行。我不知道该怎么做。谁能帮我。我想要做的就是删除包含空值的行。有没有其他方法来执行它?

2 个答案:

答案 0 :(得分:1)

写下这个:

public void doRemoval(String filename)
{
    contents = new Vector();
    inputstream = new FileInputStream(filename);
    br = new BufferedReader(new InputStreamReader(inputstream));
    String string = "";
    while((string = br.readLine())!= null)
    {
        String[] split = string.split(",");
        Vector vector = new Vector();
        for(int i=0; i<split.length; i++)
            vector.add(split[i].trim());
        if(!vector.contains("?"))
        {
            contents.add(split);
        }

    }

你不删除它们,你只是不添加它们。

答案 1 :(得分:1)

如果您不需要使用全零的中间步骤,则可以:

if(!vector.contains("?")) {
    contents.add(split);
}

而不是带有:

的块
if(vector.contains("?"))
{
    for(int i=0; i<split.length; i++)
    split[i] = "0";
}
contents.add(split);