使用java中replaceAll方法替换字符串中的反斜杠

例如我们需要将

* filePath: \upload\application\2019\08\07\1565157799645_3CDDB9B08A2D1DF34DF6221F4874A956.pdf
替换成
* returnPath: /upload/application/2019/08/07/1565157799645_3CDDB9B08A2D1DF34DF6221F4874A956.pdf

1首先要注意的事是:如果我就要显示一段含有斜杠的字符串内容,例如"abc\d\efg"怎么办?

1、直接写一个斜杠会被认为是转义符,不仅不会被Java理解为一般的斜杠字符,

2、而且还会发生错误(例如没有\d这种转义规定),

3、所以,当要显示普通斜杠的时候,就要在斜杠前加一个转义符也就是斜杠,用两个斜杠("\\")来告诉Java是要表达一个普通斜杠字符的意思。

4、以此类推,四个斜杠就是表达两个普通斜杠字符的意思,等等。

2尝试使用了replaceAll()方法

方法介绍:replaceAll() 方法使用给定的参数 replacement 替换字符串所有匹配给定的正则表达式的子字符串(成功则返回替换的字符串,失败则返回原始字符串)

String returnPath = filePath.replaceAll("\\", "/");

会报如下的错误信息

java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \^

查询百度后了解到 在regex中"\\"表示一个"\",在java中一个"\"也要用"\\"表示。这样,前一个"\\"代表regex中的"\",后一个"\\"代表java中的"\"。所以要想使用replaceAll方法将字符串中的反斜杠("\")替换成空字符串(""),则需要这样写:filePath.replaceAll("\\\\","");

修改代码后为 String returnPath = filePath.replaceAll("\\\\", "/");

重新运行结果成功  /upload/application/2019/08/07/1565157799645_3CDDB9B08A2D1DF34DF6221F4874A956.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值