我有一个将一些文本文件转换为其他测试和 csv 文件的应用程序(对于每 3 个文本文件,我生成一个文本文件和一个类似的 csv 文件)。它是根据一种compareTo
方法订购一些营地,文本文件和 cvs 文件之间的区别在于,在文本文件中我有例如 27 个营地,而在 csv 文件中只有 25 个,但其他信息是相同的,这两个我通常有一些订单。
例如,在原始文本文件中,我有:姓名、姓氏、电话号码、邮政编码和一些标识。
在应用程序返回的文本文件中,我有:姓名、邮政编码和身份证号码。
在 csv 文件中,我有:姓名、邮政编码和身份证号码。
问题是我必须使用下一个代码按邮政编码重新排序:
public int compareTo(Comunicado otro) {
int cod1=Integer.parseInt(this.codigoPostal);
int cod2=Integer.parseInt(otro.codigoPostal);
if(this.codigoPostal.startsWith("28") && otro.codigoPostal.startsWith("28")==false)
cod1=0;
else if(this.codigoPostal.startsWith("08") && otro.codigoPostal.startsWith("08")==false)
cod1=1;
if(otro.codigoPostal.startsWith("28") && this.codigoPostal.startsWith("28")==false)
cod2=0;
else if(otro.codigoPostal.startsWith("08") && this.codigoPostal.startsWith("08")==false)
cod2=1;
if(this.codigoPostal.equalsIgnoreCase("00000")){
cod1=2;
}
if(otro.codigoPostal.equalsIgnoreCase("00000")){
cod2=2;
}
return cod1-cod2;
}
我返回的两个文件是否有可能具有不同的顺序?
我已经更改了我的代码,添加了下一行:
public int compareTo(Comunicado otro) {
int cod1=Integer.parseInt(this.codigoPostal);
int cod2=Integer.parseInt(otro.codigoPostal);
if(this.codigoPostal.startsWith("28") && otro.codigoPostal.startsWith("28")==false)
cod1=0;
else if(this.codigoPostal.startsWith("08") && otro.codigoPostal.startsWith("08")==false)
cod1=1;
if(otro.codigoPostal.startsWith("28") && this.codigoPostal.startsWith("28")==false)
cod2=0;
else if(otro.codigoPostal.startsWith("08") && this.codigoPostal.startsWith("08")==false)
cod2=1;
if(this.codigoPostal.equals(otro.codigoPostal))
{
if(this.codicoCliente.compareToIgnoreCase(otro.codicoCliente) == 0)
{
return this.codicoCliente.compareToIgnoreCase(otro.codicoCliente);
}
}
if(this.codigoPostal.equalsIgnoreCase("00000")){
cod1=2;
}
if(otro.codigoPostal.equalsIgnoreCase("00000")){
cod2=2;
}
return cod1-cod2;
}
这足以确定没有问题吗?
最后我用下一个代码解决了我的问题:
if(this.codigoPostal.startsWith("28") && otro.codigoPostal.startsWith("28")==false)
cod1=0;
else if(this.codigoPostal.startsWith("08") && otro.codigoPostal.startsWith("08")==false)
cod1=1;
if(otro.codigoPostal.startsWith("28") && this.codigoPostal.startsWith("28")==false)
cod2=0;
else if(otro.codigoPostal.startsWith("08") && this.codigoPostal.startsWith("08")==false)
cod2=1;
if(this.codigoPostal.equalsIgnoreCase("00000")){
cod1=2;
}
if(otro.codigoPostal.equalsIgnoreCase("00000")){
cod2=2;
}
if(this.codigoPostal.equals(otro.codigoPostal))
{
int i = this.codicoCliente.compareTo(otro.codicoCliente);
if (i != 0) return i;
}
return cod1-cod2;
}