gpt4 book ai didi

java - 如何从输入文件创建变量

转载 作者:行者123 更新时间:2023-12-01 04:12:38 25 4
gpt4 key购买 nike

在我的程序中,我需要循环遍历各种日期。我正在用java编写这个程序,并且对读者有一些经验,但我不知道哪个读者能最好地完成这个任务,或者另一个类是否会工作得更好。日期将以如下格式输入到文本文件中:

1/1/2013 to 1/7/2013
1/8/2013 to 1/15/2013

或者类似的事情。我需要将每个日期范围分解为循环的 6 个局部变量,然后在下一个循环中更改它们。变量的编码例如:

private static String startingMonth = "1";
private static String startingDay = "1";
private static String startingYear = "2013";
private static String endingMonth = "1";
private static String endingDay = "7";
private static String endingYear = "2013";

我想这可以通过创建几个分隔符来查找,但我不知道这是否是最简单的方法。我一直在看this发帖寻求帮助,但似乎找不到相关答案。解决这个问题的最佳方法是什么?

最佳答案

有多种选择。

您可以使用扫描仪,并将分隔符设置为包含斜杠。如果您希望值是整数而不是字符串,只需使用 sc.nextInt()

Scanner sc = new Scanner(input).useDelimiter("\\s*|/");
// You can skip the loop to just read a single line.
while(sc.hasNext()) {
startingMonth = sc.next();
startingDay = sc.next();
startingYear = sc.next();
// skip "to"
sc.next()
endingMonth = sc.next();
endingDay = sc.next();
endingYear = sc.next();
}

您可以使用正则表达式,如 alfasin 建议的那样,但这种情况相当简单,因此您只需匹配第一个和最后一个空格即可。

String str = "1/1/2013 to 1/7/2013";
String startDate = str.substring(0,str.indexOf(" "));
String endDate = str.substring(str.lastIndexOf(" ")+1);¨
// The rest is the same:
String[] start = startDate.split("/");
System.out.println(start[0] + "-" + start[1] + "-" + start[2]);
String[] end = endDate.split("/");
System.out.println(end[0] + "-" + end[1] + "-" + end[2]);

关于java - 如何从输入文件创建变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19778193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com