2013-10-28 50 views
0

我有一個java程序,它從文件內容中提取日期,然後用該日期字符串重命名文件。我需要說明的是,新文件名最終可能會在開始,中間或結束時顯示日期。我試圖做的是這樣的 -Java:當變量可能位於多個輸入/參數之一時,使用輸入/參數作爲變量

String outputFilePt1 = args[0]; 
String outputFilePt2 = args[1]; 
String outputFilePt3 = args[2]; 

String outputDate = dateFormat.format(date); 
String newOutputFile = outputFilePt1 + outputFilePt2 + outputFilePt3; 

話,我會進入類似「MyFile_」,「outputDate」,名爲「.csv」分別ARGS 0-2,希望結果會是MyFile_outputDatesValue.csv - 因爲我可能需要它是MyFile.csv_outputDatesValue

什麼是完成最好的方式服用3個輸入 - 在上面FilePart1,FilePart2,FilePart3其中一個最終會與「outputDate」的價值代碼塊?

在此先感謝,我希望我問的是有道理的!

編輯 - 我不知道輸入參數時「outputDate」的值。這是根據輸入文件和確定輸入文件的日期格式/位置的config/properties文件計算得出的。

+3

嗯......「MyFile」+「.csv」+「_outputDatesValue」? – iluxa

+0

如果您的方法顯示簽名 – Bohemian

+0

非常遺憾,我不知道輸入參數時的值。所以我需要能夠輸入一個變量名稱,比如「outputDate」。然後,如果我放入arg0 =「MyFile_」arg1 =「outputDate」arg2 =「。csv」,我的字符串的結果是MyFile_xxxxx.csv - 其中「xxxxx」實際上是我的outputDate變量中計算的值。 – user2638982

回答

0

看看boolean String.matches(String regexp)方法。你可以在這篇文章中解析它:Regex date format validation on Java,找出哪一行是日期,然後我認爲建立一個合適的字符串很容易。

+0

謝謝,vanomart。在這種情況下,我不想輸入日期格式或實際值。我在我的配置文件中使用simpleDateFormat定義了一個dateformat,所以我想通過的是「outputDate」。顯然,它不會以這種方式工作。爲了做到我想要的,我基本上只是要求其中一個參數是「thedate」 - 然後我將評估FilePt1,FilePt2和FilePt3對「thedate」,並將outputDate分配給包含「thedate」的參數。這就是我需要的,只是不是我希望的!不過謝謝! – user2638982

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」的字符串是最好!

再次感謝。

相關問題