我正在尝试删除包含“?”(空值)的员工记录。员工数据库看起来像
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”的行。我不知道该怎么做。谁能帮我。我想要做的就是删除包含空值的行。有没有其他方法来执行它?
答案 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);