Java如何打印姓名和排序日期



我有一个包含名称和出生日期的文件。我正在用正则表达式匹配BateOfBirths,我想把它们存储到一个数组中,这样我就可以对日期进行排序。我所做的是
文本文件:

name1   dd-MM-yyyy  
name2   dd-MM-yyyy
namw3  dd-MM-yyyy
name4  dd-MM-yyyy

我的代码:

    import java.io.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.Scanner;
import java.util.*;
import java.text.*;
class SortDate{
public static void main(String args[]) throws IOException {
BufferedReader br=new BufferedReader(new FileReader("dates.txt"));
File file = new File("dates.txt");
Scanner scanner = new Scanner(file);
int count = 0;
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
count++;
}
String[] names= new String[count];
List<Date> birthDates = new ArrayList<Date>();
for(int x=0;x<count;x++)
{
names[x]=br.readLine();
}
String Dates="\d\d-\d\d-\d\d\d\d";
Pattern pat=Pattern.compile(Dates);
for(String s:names){
try {
Matcher mat=pat.matcher(s);
while(mat.find()){
String str=mat.group();
DateFormat formatter ;
Date date ;
formatter = new SimpleDateFormat("dd-MM-yyyy");
date = (Date)formatter.parse(str);  
birthDates.add(date);
}
}catch (ParseException e)
  {System.out.println("Exception :"+e);  } }
  Collections.sort(birthDates);
System.out.println(names+birthDates);
}}

我可以打印排序后的日期,但如何打印姓名和日期。感谢

您可以这样做:

while (mat.find()) {
    System.out.println(mat.group());
}

已编辑

很抱歉我没有注意到你的问题。保存结果:

import java.util.*;
...
List<String> matches = new ArrayList<String>();
while (mat.find()) {
    matches.add(mat.group());
}

您只需创建一个ArrayList并将其存储在其中。

List<String> birthDates = new ArrayList<String>();
Pattern datePattern = Pattern.compile("\d\d-\d\d-\d\d\d\d");
for(String name : names) {
    Matcher m = datePattern.matcher(name);
    while(m.find()) {
        birthDates.add(m.group());
    }
}

需要记住的一件事是,你计划对这些进行分类。您可能不需要使用字符串比较器和Collections.sort(birthDates)。在需要Date对象的情况下,可以使用m.group()并将其解析为Date对象。然后,只需将ArrayList类型更改为ArrayList<Date>即可。

编辑:如果真的需要它是一个数组,那么可以使用List接口中的.toArray(T[])来更改它。

String[] birthDatesArray = birthDates.toArray(new String[birthDates.size()]);

相关内容

  • 没有找到相关文章