2016-12-27 127 views
0

我正在從數據庫獲取文件路徑,我想打開該文件。 I 收到的路徑爲 'D:\ Tasks \ Electrolux \ Asia \ XmlToDB \ I008_POK_ServiceOrder_201220162609' 但java會將':'和'\'視爲特殊字符並給出錯誤 無效的字符常量。我的預期成果是:「d:\\任務/伊萊克斯/亞洲/ XmlToDB/I008_POK_ServiceOrder_201220162609」我用如下代替,如何將常規目錄路徑替換爲java路徑作爲字符串

public static String getFilePath(String path) { 

     str_file_name = path.replace('\\', '/'); 
     str_file_name = str_file_name.replace(':/', '\\'); //getting error here 
     return str_file_name; 
    } 
+3

斜槓做工精細,甚至在Windows上:'d:/任務/伊萊克斯/亞洲/ XmlToDB/I008_POK_ServiceOrder_201220162609'。你不需要爲字符串常量使用String.replace()!否則,請考慮'String.replaceAll()'替換所有斜線! – paulsm4

+0

你的問題不清楚。您的預期輸出具有前向和反向。你的直接錯誤是'':/''是兩個獨立的字符,不能用單引號(它應該是'「:/」'),但是總體問題並不清楚。 –

+0

'str_file_name.replace(「://」,「\\」);'應該沒問題。 – Maroun

回答

0

前要通過一個參數去getFilePath(inputPath)見測試程序修改路徑。它可能有幫助。試一次

公共類的文件路徑{

public static void main(String[] args) { 

    // TODO Auto-generated method stub 
    String inputPath = "D:\\Tasks\\Electrolux\\Asia\\XmlToDB\\I008_POK_ServiceOrder_201220162609"; 
    System.out.println(getFilePath(inputPath)); 

} 

public static String getFilePath(String path) { 
    path = path.replace("\\", "/"); 
    // System.out.println(path); 
    path = path.replace(":/", ":\\\\"); 
    // System.out.println(path); 
    return path; 
} 

}

0

你得到一個錯誤,因爲':/'是字符串常量(不是一個字符串常量),但包含超過1個字符。 嘗試str_file_name.replace(":/", "\\\\"); (使用雙引號)

相關問題