Вы можете сделать что-то вроде этого:
String str = "\"C:\\foor\\bar\"";
System.out.println(str);
String newStr = str.replaceAll("\"?(.+?)\"?", "$1");
System.out.println(newStr);
печатает:
C:\foo\бар
C:\foo\бар
Это удалит кавычки ("
), которые находятся точно в начале и в конце строки. ?
в регулярном выражении означает, что кавычек может и не быть, поэтому, например, все следующее должно давать одинаковый результат:
C:\foo\бар
C:\foo\бар
C:\foo\бар
C:\foo\бар
Однако, насколько мне известно, символ "
не является частью действительного пути к файлу, поэтому вы можете обойти это, просто выполнив: str.replaceAll("\"","");
.
РЕДАКТИРОВАТЬ: Увидев ваш комментарий и редактирование вопроса, я сделал этот короткий фрагмент кода, который, похоже, делает то, что вам нужно. Тем не менее, я не буду удалять свой предыдущий ответ на тот случай, если кто-то еще может найти его полезным.
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle("Hello");
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
chooser.setAcceptAllFileFilterUsed(false);
if (chooser.showOpenDialog(f) == JFileChooser.APPROVE_OPTION)
{
File file = chooser.getSelectedFile();
if (file.getName().contains("\""))
{
Pattern pattern = Pattern.compile("\"?(.*?)\"?");
Matcher m = pattern.matcher(file.getName());
if (m.matches())
{
System.out.println("Group Found: " + m.group(1));
}
}
}
Похоже, это то, что вам нужно, я вставил следующее в текстовое поле «Файл»: "C:\foo\bar.txt"
и код, напечатанный C:\foo\bar.txt
, исключая начальный сегмент.
person
npinti
schedule
19.06.2012