首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用另一个特殊字符替换特殊字符串

用另一个特殊字符替换特殊字符串
EN

Stack Overflow用户
提问于 2016-03-12 08:05:20
回答 2查看 6.6K关注 0票数 1

我有一个字符串,它是从我的系统中动态获取的路径。我把它储存在一根绳子里。

C:\Users\SXR8036\Downloads\LANE-914.xls

我需要传递这个路径来读取excel文件函数,但它需要将反斜杠替换为正斜杠。

我想要类似C:/Users/SXR8036/Downloads/LANE-914.xls的东西,即用前向斜线替换所有的后斜线

使用字符串替换方法,我只能用am字符替换,但是当我替换特殊字符时,它会显示错误。

代码语言:javascript
运行
复制
something.replaceAll("[^a-zA-Z0-9]", "/");

我必须传递字符串名才能读取文件。

EN

Stack Overflow用户

回答已采纳

发布于 2016-03-12 08:57:07

在这种情况下,最好使用非正则replace()而不是regex replaceAll()。对于这种替换,您不需要正则表达式,它会使事情复杂化,因为它需要额外的转义。反斜杠是Java中的一个特殊字符,在正则表达式中也是如此,所以在Java中,如果您想要一个直反斜杠,就必须加倍使用\\,如果您想在Java的正则表达式中使用一个直反斜杠,则必须将它翻四倍,\\\\

代码语言:javascript
运行
复制
something = something.replace("\\", "/");

在幕后,replace(String, String)使用正则表达式模式(至少在Oracle中是这样),因此有一些开销。在您的具体情况下,您实际上可以使用单个字符替换,这可能会更有效(这可能并不重要!):

代码语言:javascript
运行
复制
something = something.replace('\\', '/');

如果要使用正则表达式:

代码语言:javascript
运行
复制
something = something.replaceAll("\\\\", "/");

或者:

代码语言:javascript
运行
复制
something = something.replaceAll(Pattern.quote("\\"), "/");
票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35955245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档