2015-10-15 64 views
1

你好我正在使用java程序,我有一個字符串(一個路徑),我想用「/」來改變「\」。更改字符串中的字符(路徑)Java

這是我的程序,但我保持着相同的路徑,沒有變化。

package Test; 

import javax.swing.JFileChooser; 
import javax.swing.filechooser.FileNameExtensionFilter; 

public class Filechooser { 

    public static void main(String[] args) { 

     JFileChooser fc=new JFileChooser(); 
     fc.setApproveButtonText("Open"); 
     fc.setFileSelectionMode(JFileChooser.FILES_ONLY); 
     fc.addChoosableFileFilter(new FileNameExtensionFilter("text Documents", "txt")); 
     fc.setAcceptAllFileFilterUsed(true); 
     int returnVal=fc.showSaveDialog(null); 
     if (returnVal == JFileChooser.APPROVE_OPTION) { 
     String path= fc.getSelectedFile().getAbsolutePath(); 
     System.out.println(path); 
     String temp = path.replaceAll("\"", "/"); 
     System.out.println(temp); 
    } 

} 
+0

UFF功課...... – Apurva

+0

你替換「字符,而不是\字符。改爲'「\\\\」'而不是'「\」「'。您需要三個轉義反斜槓來迎合replaceAll接受regex參數的事實。 – JonK

回答

4

嘗試使用:

String temp = path.replace("\\", "/"); 

replaceAll(str, str)需要一個正則表達式,不是一個簡單的字符/串,所以你不能使用的replaceAll這樣。

\\意味着在Java中\,而\"意味着",所以要小心這一點:)

+0

使用\\\\而不是\\(我的初始評論並沒有考慮到它是一個正則表達式) – JonK

4

在你行的問題是,您要更換\"而不是\\\"可能是沒有發現在所有在你的字符串,所以沒有改變。

改變這一行String temp = path.replaceAll("\"", "/");

這一行String temp = path.replace("\\", "/");,它應該工作。

編輯:在評論中提醒,使用replaceAll不起作用,因爲它需要一個正則表達式。所以你想使用replace()它完全相同的東西,而不需要正則表達式。

+0

爲了幫助他理解,我只是補充一點,'\'是正則表達式中的一個特殊字符,並且具有被逃脫。 –

+0

\是一個正則表達式中的特殊字符,你需要將其轉義出來... – assylias

+0

@Codebender哎呀抱歉,完全錯過了這一點,編輯它的方式。感謝您注意 – LBes

-2

您不能將「\」字符添加到String對象。 但對於替換另一個字符一個字符,你可以使用此代碼:

int index = str.indexOf("#"); 
String result = str.substring(0,index) + "*" + str.substring(index+1,str.length()); 
+0

爲什麼你會這樣做,而不是'replaceAll'? – JonK

+0

我忘記了這個方法。你的!!!!!!!!!!!! –