-2
我試圖從文件中讀取並將所有美元值替換爲歐元,例如,如果文件中的某處存在$ 30.25,則應將其轉換爲26.84E。我設法使其工作,但我不知道如何使它工作,例如,如果文本包含像$ 30.25的東西。 (最後注意點)。我使用字符串的替換方法,但如果使用replace(「。」,「」),它顯然會刪除所有的點,所以它不起作用。你能以其他方式幫助我嗎?Java:文件讀取/寫入
預先感謝您。
我試圖從文件中讀取並將所有美元值替換爲歐元,例如,如果文件中的某處存在$ 30.25,則應將其轉換爲26.84E。我設法使其工作,但我不知道如何使它工作,例如,如果文本包含像$ 30.25的東西。 (最後注意點)。我使用字符串的替換方法,但如果使用replace(「。」,「」),它顯然會刪除所有的點,所以它不起作用。你能以其他方式幫助我嗎?Java:文件讀取/寫入
預先感謝您。
你仍然可以使用替代方法,如果你可以隔離你首先要保持的發生,這可以用下面的例子String.split()
的進行使用正向後看分裂的句號。正面看,從落後Regex101的定義:
private String replaceAllButFirstOccurrence(String text, String sequence){
if(text.contains(sequence) && (text.indexOf(sequence) != text.lastIndexOf(sequence))){
//There are at least 2 occurrences of the sequence
String[] substrings = text.split("(?<=\\.)", 2); //Split in 2
/*
Input is now segmented in 2:
[0] - The first sub string containing the first occurrence
[1] - The second sub string containing the rest of the input that can be modified
*/
return substrings[0] + substrings[1].replaceAll("\\.", "");
}
return text;
}
樣品:
$100 -> $100
$200.00 -> $200.00
$250.00. -> $250.00
$300.00.. -> $300.00
您是否嘗試過 「由數字環繞的任何點」?看看關於正則表達式的教程。 – Gendarme
該文件是您作爲程序的結果創建並隨後從中讀入的內容嗎?如果是這樣,我認爲最好是確定是什麼導致了額外的句號,並糾正這個錯誤,而不是稍後檢查 – Peter
,那麼你想要https://docs.oracle.com/javase/7/docs/ API /爪哇/郎/ String.html#replaceFirst(java.lang.String中,%20java.lang.String) –