【发布时间】:2020-03-05 20:06:22
【问题描述】:
我在继续时遇到问题。我有一个列表,每个位置都包含一个字符串(在短语中末尾有一个日期)
例子:
I am new here 20/8/2019
我想以这种方式对列表进行排序: 在位置零我想要包含最旧日期的短语和以下位置日期将更新。
我尝试使用 SimpleDateFormat 和 Date,但我不知道该怎么做。
String variable, variable2, c;
int d = 0;
for(int i = 0; i < lista.size(); i++) {
for(int j = 1; j <lista.size(); j++) {
variable = lista.get(i);
variable2 = lista.get(j);
c = compareDates(variable, variable2);
lista.add(d,c);
d++;
}
}
private static Date compareDates(String variable, String variable2) throws ParseException {
SimpleDateFormat formateador = new SimpleDateFormat("dd/MM/yyyy");
String var = formateador.format(variable);
String var2 = formateador.format(variable2);
if (var.before(var2)) {
return var;
} else {
if (var2.before(var1)) {
} else {
}
return null;
}
}
线程“main”java.lang.Error 中的异常:未解决的编译问题: 类型不匹配:无法从日期转换为字符串
at Ejercicio.ClaseMain.leerDes(ClaseMain.java:124)
第 124 行:c = compareDates(variable, variable2);
视觉示例:列表中的每个位置都有一个带有日期的短语:
问题是,我读了一个 .txt 文件,其中有几行。 文件内容:
塞维利亚将自己保留给Apoel并赢得没有光彩的比赛;运动 Julen Lopetegui 彻底改变了 11 人,目的是让他们休息 到常客,这并没有阻止他的团队增加他的第二个 2019 年 10 月 10 日体育比赛的胜利
Banksy 的一幅描绘被黑猩猩占领的英国议会的画作,以 >1100 万的价格售出 欧元文化代表英国之家的艺术家班克斯的油画 满是黑猩猩的公地在周四的一次拍卖中名列前茅 伦敦 980 万英镑(1100 万欧元)10/2019
我用一段时间来读取文件行并将每一行保存在列表中的每个位置,我想对列表进行排序。旧日期 ---> 最近日期。
【问题讨论】:
-
请使用 java.time API,它会更有帮助
-
请分享
lista实例化,问题似乎出在这里 -
是否绝对确定列表中的所有字符串短语仅在末尾有日期并且格式相同
dd/mm/yyyy?? -
@ambianBeing 是的,我已经用列表中的内容更新了帖子。
-
Date和SimpleDateFormat类很糟糕。避开他们。它们在几年前被 java.time 类所取代。
标签: java sorting date-parsing date-comparison