字符串操作问题

时间:2011-12-06 20:02:11

标签: java string

我有一个类似“C:\Program Files\Directory\Something.txt”的字符串,我想将其转换为“C:\\Program Files\\Directory\\Something.txt”所以基本上添加\,找到\。是使用indexOf来解决这个问题的最好方法,然后将字符串分解为sutrings然后重新连接,还是有更好的方法在Java中执行此操作?

5 个答案:

答案 0 :(得分:2)

String s = "C:/Program Files/Directory/Something.txt";
String s2 = s.replaceAll("/", "//");
// => "C://Program Files//Directory//Something.txt"

<强> [编辑]

如果字符串有反斜杠,那么它会变得非常有趣,因为这是正则表达式转义字符。这应该有效:

String s = "C:\\Program Files\\Directory\\Something.txt";
s.replaceAll("\\\\", "\\\\\\\\");
// => "C:\\\\Program Files\\\\Directory\\\\Something.txt"

请注意,正则表达式中有四个反斜杠(顺序为两对以获得两个字面反斜杠),然后是替换字符串中的八个反斜杠,因为反斜杠也是文字字符串的转义字符。

答案 1 :(得分:1)

您可以使用File.separator属性使其更具跨平台性:

String input = "C:/Program Files/Directory/Something.txt";
String result = input.replaceAll(File.separator, File.separator + File.separator);

答案 2 :(得分:0)

您可以使用String.replaceAll

答案 3 :(得分:0)

String str = "C:/Program Files/Directory/Something.txt";
str = str.replaceAll("/","//");

答案 4 :(得分:0)

String s = "C:/Program Files/Directory/Something.txt";
s = s.replace("/", "//");

这将使用/

替换字符串中的所有//