我正在尝试转换我动态获取的字符串,将\加倍\或将它们转换为/(两者都适合我)。
它格式为:
d:\code\main
我无法在源头编辑它。
在我的测试中,我尝试使用replace或replaceAll函数,使用\到5 \\\,但我总是遇到这个错误:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
script15181726196231935876660.groovy: 4: unexpected char: '\' @ line 4, column 17.
String main = "d:\code\main\blabla\blabla"
^
1 error
at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:302)
at org.codehaus.groovy.control.ErrorCollector.addFatalError(ErrorCollector.java:149)
at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:119)
at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:131)
at org.codehaus.groovy.control.SourceUnit.addError(SourceUnit.java:359)
at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:137)
at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:108)
at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:236) ...
有没有办法转换或重建这个变量而不会出现这个Java错误?
由于
答案 0 :(得分:0)
\
字符是转义字符https://en.wikipedia.org/wiki/Escape_character。因此,要将其用作文字值,请改用\\
。
String main = "d:\\code\\main\\blabla\\blabla"
答案 1 :(得分:0)
Dollar slashy string
和Slashy string
都允许使用反斜杠。
def s1 = /d:\code/
def s2 = $/d:\code/$
s1.equals(s2) // true
slashy string
只有一种情况,反斜杠是一个特殊符号 - 如果它出现在正斜杠之前:
def s3 = /This - \/ - is the forward slash/
// This - / - is the forward slash
可以找到文档here。