更改字符串中的字符(路径)Java
你好我正在使用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);
}
}
尝试使用:
String temp = path.replace("\\", "/");
replaceAll(str, str)
需要一个正则表达式,不是一个简单的字符/串,所以你不能使用的replaceAll这样。
\\
意味着在Java中\
,而\"
意味着"
,所以要小心这一点:)
使用\\\\而不是\\(我的初始评论并没有考虑到它是一个正则表达式) – JonK
在你行的问题是,您要更换\"
而不是\\
这\"
可能是没有发现在所有在你的字符串,所以没有改变。
改变这一行String temp = path.replaceAll("\"", "/");
这一行String temp = path.replace("\\", "/");
,它应该工作。
编辑:在评论中提醒,使用replaceAll
不起作用,因为它需要一个正则表达式。所以你想使用replace()
它完全相同的东西,而不需要正则表达式。
您不能将“\”字符添加到String对象。 但对于替换另一个字符一个字符,你可以使用此代码:
int index = str.indexOf("#");
String result = str.substring(0,index) + "*" + str.substring(index+1,str.length());
为什么你会这样做,而不是'replaceAll'? – JonK
我忘记了这个方法。你的!!!!!!!!!!!! –
UFF功课...... – Apurva
你替换“字符,而不是\字符。改为'“\\\\”'而不是'“\”“'。您需要三个转义反斜杠来迎合replaceAll接受regex参数的事实。 – JonK