Groovy:用简单的\转换字符串
Groovy: Convert string with simple \
我正在尝试转换动态获取的字符串,将 \ 加倍或将它们转换为 /(两者都适合我)。
格式为:
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 错误?
谢谢
\
字符是转义字符 https://en.wikipedia.org/wiki/Escape_character。因此,要将其用作文字值,请改用 \
。
String main = "d:\code\main\blabla\blabla"
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。
我正在尝试转换动态获取的字符串,将 \ 加倍或将它们转换为 /(两者都适合我)。
格式为:
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 错误?
谢谢
\
字符是转义字符 https://en.wikipedia.org/wiki/Escape_character。因此,要将其用作文字值,请改用 \
。
String main = "d:\code\main\blabla\blabla"
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。