Java:当变量可以位于多个输入/参数之一时,使用输入/参数作为变量

时间:2013-10-28 23:51:11

标签: java variables input args

我有一个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”的值。这是根据输入文件和确定输入文件的日期格式/位置的配置/属性文件计算的。

2 个答案:

答案 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”字符串上进行替换是可取的!

再次感谢。