I\'m writing a bit of code to run a shell script using process that loads and runs a file in terminal. The problem I\'m having is getting the filename to be recognised by termin
If you want the string to contain an actual backslash you need to escape the backslash. Otherwise javac thinks you're trying to escape space, which doesn't need escaping:
string = string.replaceAll(" ", "\\ ");
Using this code, the second argument to the method will be a 2-character string: backslash followed by space. I assume that's what you want.
See section 3.10.6 of the Java Language Specification for more details of character/string literal escape sequences.
If you want to put the \
character (which is the escape character) inside a string, you'll need to escape it:
string = string.replaceAll (" ", "\\ ");
A single \
is a escape sequence leading character, such as with \n
(newline) or \r
(carriage return). The full list of single-character escapes is:
\b backspace
\t tab
\n linefeed (newline)
\f form feed
\r carriage return
\" double quote
\' single quote
\\ backslash
This is in addition to the octal escape sequences s such as \0
, \12
or \377
.
The reason why your separatorChar
solution won't work is because that gives you the separator char (/
under UNIX and its brethren), not the escape character \
that you need.