问题
I'm importing a CSV file to MySQL database. This can be done using java.mysql support for forward slash in file path. If user gives the path
String filepath=" c:\upload\date\csv\sample.csv";
we can do it by replacing '\'
with '/'
using following line of code.
String filepath2=filepath.replace("\\","/");
but when user enters path as follows
String filepath=" c:\test.csv";
the replace function unable to replace "\\"
with "/"
as '\'
in the filepath does not remain '\'
as '\'
is followed by 't' and it becomes as '\t'
escape character.
this type of problem will come with each and every escape sequence.
I want to search for backslashes in the path and replace them with a forward slash, to give this:
c:/test.csv
How is that done? How to solve this problem?
回答1:
If you're getting the value via JFileChooser, then it will be more like this:
String value = "c:\\test.csv"; // This really only has a single backslash
But you shouldn't need to replace the backslashes with forward slashes. My guess is that you're including the value directly in the SQL you're generating: don't do that. Use a prepared statement with parameters instead, and you may well find the problem just goes away... and suddenly you won't be as vulnerable to SQL injection attacks either...
If you really, really need to convert backslashes to forward slashes, you can use:
String newValue = oldValue.replace("\\", "/");
... but you shouldn't have to do this.
来源:https://stackoverflow.com/questions/7554361/how-to-replace-backslash-followed-by-t-or-any-other-alphabet-or-character-in-e