我已生成一个文件名并存储在尝试使用的字符串变量路径中
path=path.replaceAll('\','/')
Run Code Online (Sandbox Code Playgroud)
但这不起作用
J.A*_*.L. 36
replaceAll()
需要Strings
作为参数.所以,如果你写
path = path.replaceAll('\', '/');
Run Code Online (Sandbox Code Playgroud)
它失败了因为你应该写的
path = path.replaceAll("\", "/");
Run Code Online (Sandbox Code Playgroud)
但这也失败了,因为字符'\'应该输入'\\'.
path = path.replaceAll("\\", "/");
Run Code Online (Sandbox Code Playgroud)
这将在执行期间失败给你一个PatternSyntaxException
,因为fisr String
是一个正则表达式(感谢@Bhavik Shah指出它).因此,将其写为RegEx,就像@jlordo在他的回答中所说:
path = path.replaceAll("\\\\", "/");
Run Code Online (Sandbox Code Playgroud)
是你在找什么.
为了使核心最佳化,您应该使其独立于操作系统,因此请使用@Thai Tran的提示:
path = path.replaceAll("\\\\", File.separator);
Run Code Online (Sandbox Code Playgroud)
但这失败了StringIndexOutOfBoundsException
(我不知道为什么).如果您使用replace()
没有正则表达式,它可以工作:
path = path.replace("\\", File.separator);
Run Code Online (Sandbox Code Playgroud)
Tha*_*ran 11
如果是文件路径,则应尝试"File.separator"而不是"\"(以防您的应用程序与Nix平台一起使用)
你path=path.replaceAll('\','/');
不会编译,因为你必须逃避反斜杠,
使用path=path.replace('\\','/');
(它将替换所有的Occrurences,参见JavaDoc)
或path=path.replaceAll("\\\\", "/");
(这个正则表达式逃避反斜杠);-)
在评论中有一个解释,为什么你需要4个"\"来为一个"\"制作正确的正则表达式.
归档时间: |
|
查看次数: |
83047 次 |
最近记录: |