我有一个字符串,它是从系统中动态获取的路径。我将其存储在String中。C:\Users\SXR8036\Downloads\LANE-914.xls我需要通过此路径来读取excel文件功能,但需要将反斜杠替换为正斜杠。我想要类似C:/Users/SXR8036/Downloads/LANE-914.xls的东西即所有反斜杠都替换为正斜杠使用字符串替换方法,我只能用a-z字符替换,但是当我替换特殊字符时显示错误something.replaceAll("[^a-zA-Z0-9]", "/");我必须传递字符串名称才能读取文件。 最佳答案 在这种情况下,最好使用非正则表达式replace()而不是正则表达式replaceAll()。您不需要此替换的正则表达式,并且它使事情变得复杂,因为它需要额外的转义符。反斜杠在Java和正则表达式中都是一个特殊字符,因此在Java中,如果要使用正斜杠,则必须将其加倍\\;如果要在Java正则表达式中使用正斜杠,则必须将其加倍四倍。something = something.replace("\\", "/");在后台,\\\\使用正则表达式模式(至少在Oracle JDK中),因此会产生一些开销。在您的特定情况下,您实际上可以使用单个字符替换,这可能更有效(这可能不重要!):something = something.replace('\\', '/');如果要使用正则表达式:something = something.replaceAll("\\\\", "/");要么:something = something.replaceAll(Pattern.quote("\\"), "/");关于java - 用另一个特殊字符替换特殊字符String,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35955245/
10-09 16:37
查看更多