I want to use the following string literal inside my groovy program without having to escape the backslashes:
C:\dev\username
Here is what I have tried so far:
String (Single Quotes) & GStrings (Double Quotes)
def aString = 'C:\dev\username' def aGString = "C:\dev\username"
- Doesn't work because \ has special meaning and is used to escape other characters
- I end up having to escape \ with another \
def s = 'C:\\dev\\username'
Slashy String & Dollar Slashy String
Works for some strings, like the following
def slashy = /C:\windows\system32/ def dollarSlashy = $/C:\windows\system32/$
But it interprets \u as having special meaning (the following don't work):
def s1 = /C:\dev\username/ def s2 = $/C:\dev\username/$
- Groovy:Did not find four digit hex character code
Best Answer
Wow, another gotcha with putting Windows files paths in slashy strings. Nice catch. The gotcha I've encountered before was including a trailing backslash on the path, e.g.
/C:\path\/
, which results in anunexpected char: 0xFFFF
error.Anyways, for the sake of an answer, given that Windows paths are case insensitive, why not exploit it for once?
The
\u
unicode character escape sequence is case sensitive.