我有一个java程序,它从文件内容中提取日期,然后用该日期字符串重命名该文件。我需要考虑的是新文件名可能最终在开头,中间或结尾处有日期。我试图做的是这样的事情 -
String outputFilePt1 = args[0];
String outputFilePt2 = args[1];
String outputFilePt3 = args[2];
String outputDate = dateFormat.format( date );
String newOutputFile = outputFilePt1 + outputFilePt2 + outputFilePt3;
然后我会分别为args 0-2输入类似“MyFile_”,“outputDate”,“。csv”的内容,希望结果是MyFile_outputDatesValue.csv - 因为我可能需要它为MyFile.csv_outputDatesValue < / p>
完成3个输入的最佳方法是什么 - FilePart1,FilePart2,FilePart3,其中一个最终会在上面的代码块中以“outputDate”的值结束?
在此先感谢,我希望我的要求是有意义的!
编辑 - 我在输入参数时不知道“outputDate”的值。这是根据输入文件和确定输入文件的日期格式/位置的配置/属性文件计算的。
答案 0 :(得分:0)
看看boolean String.matches(String regexp)方法。您可以像在这篇帖子中一样解析它:Regex date format validation on Java,找出哪一行是日期,然后我认为构建一个合适的字符串会很容易。
答案 1 :(得分:0)
基本上,我最终的方式只是接受一个静态字符串,如FilePart的“thedate”,我想要日期,然后用包含它的变量替换文件名字符串中的“thedate”,像这样 -
String outputFilePt1 = args[0];
String outputFilePt2 = args[1];
String outputFilePt3 = args[2];
String outputDate = dateFormat.format( date );
newOutputFile = newOutputFile.replaceAll("thedate", outputDate);
感谢所有关注此事的人!我的问题的真正答案是“你不能完全按照自己的意愿行事” - 基本上你必须转换输入,或者按照上面的说法进行替换。在得到这个解决方案之前,我基本上已经完成了 -
String outputFilePt1 = args[0];
String outputFilePt2 = args[1];
String outputFilePt3 = args[2];
String lookingFor = "thedate";
if (outputFilePt1.equals(lookingFor))
{
outputFilePt1 = outputDate;
}
if (outputFilePt2.equals(lookingfor))
{
outputFilePt2 = outputDate;
}
if (outputFilePt2.equals(lookingfor))
{
outputFilePt3 = outputDate;
}
String outputDate = dateFormat.format( date );
显然,在我的“thedate”字符串上进行替换是可取的!
再次感谢。