Java - 如何将 ArrayList 输入拆分为 Date 和 String 然后进行比较?
Java - How to split an ArrayList input into Date and String and then compare?
我搜索了多个帖子,但找不到满足我需要的内容。
** 目标**
我需要以日期形式获取用户输入,然后是字符串描述,然后将其存储在 Arraylist 中。
即 2021 年 11 月 10 日,打扫我的房间
我希望我的日期采用 D MMM YYYY 格式
一旦将其存储在数组列表中,我需要能够在任务数组列表中搜索 当前日期
如果我的数组列表包含 2021 年 11 月 11 日的任务并且当前 date/local 机器日期是 2021 年 11 月 11 日,我需要打印今天的任务,否则打印出当前日期不存在任何任务。
这是我迄今为止尝试过的片段
public class TestClass {
public static void main(String[]args){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try{
System.out.println("Enter : ");
// sample string
String str = br.readLine();
List<String> list = Arrays.asList(str.split(","));
System.out.println("--------------");
System.out.println(list);
}
catch(IOException e){
System.out.println(e);
}
}
}
这是一个输出
Enter :
10 jan 2020, clean room
--------------
[10 jan 2020, clean room]
我不确定下一步该怎么做,在此先感谢。
希望对您有所帮助:
public class Main {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("d MMM yyyy");
List<Task> tasks=new ArrayList<Task>();
while (true) {
try{
System.out.println("Enter : ");
String str = br.readLine();
Task task= new Task(str.split(",")[0],str.split(",")[1]);
tasks.add(task);
System.out.println("--------------");
System.out.println(task.toString());
System.out.println("--------------");
System.out.println("Tasks for today");
LocalDateTime now = LocalDateTime.now();
String currentDateStr=dtf.format(now);
System.out.println(getTasksByDate(tasks,currentDateStr));
}
catch(IOException e){
System.out.println("Enter a valid input");
}
}
}
public static List<Task> getTasksByDate(List<Task> tasks,String date ){
List<Task> res=new ArrayList<Task>();
for(int i=0;i<tasks.size();i++) {
if(tasks.get(i).getDate().equals(date)) {
res.add(tasks.get(i));
}
}
return res;
}
}
//Task.java
public class Task {
private String date;
private String subject;
public Task(String date,String subject) {
this.date=date;
this.subject=subject;
}
public String getSubject() {
return this.subject;
}
public String getDate() {
return this.date;
}
public String toString() {
return this.date + ":" +this.subject ;
}
}
我搜索了多个帖子,但找不到满足我需要的内容。
** 目标**
我需要以日期形式获取用户输入,然后是字符串描述,然后将其存储在 Arraylist 中。
即 2021 年 11 月 10 日,打扫我的房间
我希望我的日期采用 D MMM YYYY 格式
一旦将其存储在数组列表中,我需要能够在任务数组列表中搜索 当前日期
如果我的数组列表包含 2021 年 11 月 11 日的任务并且当前 date/local 机器日期是 2021 年 11 月 11 日,我需要打印今天的任务,否则打印出当前日期不存在任何任务。
这是我迄今为止尝试过的片段
public class TestClass {
public static void main(String[]args){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try{
System.out.println("Enter : ");
// sample string
String str = br.readLine();
List<String> list = Arrays.asList(str.split(","));
System.out.println("--------------");
System.out.println(list);
}
catch(IOException e){
System.out.println(e);
}
}
}
这是一个输出
Enter :
10 jan 2020, clean room
--------------
[10 jan 2020, clean room]
我不确定下一步该怎么做,在此先感谢。
希望对您有所帮助:
public class Main {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("d MMM yyyy");
List<Task> tasks=new ArrayList<Task>();
while (true) {
try{
System.out.println("Enter : ");
String str = br.readLine();
Task task= new Task(str.split(",")[0],str.split(",")[1]);
tasks.add(task);
System.out.println("--------------");
System.out.println(task.toString());
System.out.println("--------------");
System.out.println("Tasks for today");
LocalDateTime now = LocalDateTime.now();
String currentDateStr=dtf.format(now);
System.out.println(getTasksByDate(tasks,currentDateStr));
}
catch(IOException e){
System.out.println("Enter a valid input");
}
}
}
public static List<Task> getTasksByDate(List<Task> tasks,String date ){
List<Task> res=new ArrayList<Task>();
for(int i=0;i<tasks.size();i++) {
if(tasks.get(i).getDate().equals(date)) {
res.add(tasks.get(i));
}
}
return res;
}
}
//Task.java
public class Task {
private String date;
private String subject;
public Task(String date,String subject) {
this.date=date;
this.subject=subject;
}
public String getSubject() {
return this.subject;
}
public String getDate() {
return this.date;
}
public String toString() {
return this.date + ":" +this.subject ;
}
}