How to replace backslash followed by 't' or any other alphabet or character in escape chacter in file path to forward slash in java?

≯℡__Kan透↙ 提交于 2020-01-16 14:30:44

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!