【发布时间】:2011-10-11 21:54:11
【问题描述】:
我正在将 CSV 文件导入 MySQL 数据库。这可以使用java.mysql 支持文件路径中的正斜杠来完成。如果用户给出路径
c:\upload\date\csv\sample.csv
MySQL 不支持这种类型的路径模式。我想在路径中搜索反斜杠并用正斜杠替换它们,以给出:
c:/upload/date/csv/sample.csv
这是怎么做到的?
【问题讨论】:
我正在将 CSV 文件导入 MySQL 数据库。这可以使用java.mysql 支持文件路径中的正斜杠来完成。如果用户给出路径
c:\upload\date\csv\sample.csv
MySQL 不支持这种类型的路径模式。我想在路径中搜索反斜杠并用正斜杠替换它们,以给出:
c:/upload/date/csv/sample.csv
这是怎么做到的?
【问题讨论】:
在java中,使用这个:
str = str.replace("\\", "/");
注意这里不需要replace的正则版本,即replaceAll(); replace() 仍然会替换所有出现的搜索词,但它会搜索 literal 字符串,而不是正则表达式匹配。
【讨论】:
str = str.replace("/", "\\");
str = str.replace("\\", "//");
如果你有:
String s = "c:\\upload\\date\\csv\\sample.csv";
在 Java 中,您可以使用:
s = s.replace("\\", "/");
这将使 s 等于:
c:/upload/date/csv/sample.csv
【讨论】:
@PaulPRO 和 @Bohemian 提供的 String.replace(CharSequence, CharSequence) 示例可以工作,但最好使用 String.replace(char, char) 版本。稍微快一点。虽然您不会有明显的速度差异,但最好尽可能进行此类优化。
String replacedStr = str.replace('\\', '/');
【讨论】: