사용자가 JFileChooser에 따옴표가있는 경로를 입력하고 따옴표없이이 경로를 가져올 수 있습니까?JFileChooser에서 따옴표가있는 경로를 가져 옵니까?
예를 들어 사용자는 파일 이름 텍스트 필드에 "c:\path\to\File"
을 넣습니다. 하지만 내가 선택한 파일을 받았을 때 현재 디렉토리 + "c:\path\to\File"
을 얻었습니다. 이 문제를 해결할 수있는 방법이 있습니까? 당신과 같이 뭔가를 할 수
사용자가 JFileChooser에 따옴표가있는 경로를 입력하고 따옴표없이이 경로를 가져올 수 있습니까?JFileChooser에서 따옴표가있는 경로를 가져 옵니까?
예를 들어 사용자는 파일 이름 텍스트 필드에 "c:\path\to\File"
을 넣습니다. 하지만 내가 선택한 파일을 받았을 때 현재 디렉토리 + "c:\path\to\File"
을 얻었습니다. 이 문제를 해결할 수있는 방법이 있습니까? 당신과 같이 뭔가를 할 수
감사 :
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("\"","");
.
편집 : 귀하의 의견과 질문을보고 편집, 나는 당신이 무엇을하고있는 것 같습니다 코드 의이 짧은 부분을 만들었습니다. 즉, 다른 누군가가 유용하다고 생각한 경우를 대비하여 이전 답변을 삭제하지 않을 것입니다. "C:\foo\bar.txt"
와 코드가 초기 세그먼트를 제외하고, C:\foo\bar.txt
인쇄 :
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));
}
}
}
이 당신이 파일의 텍스트 상자에 다음과 같은 후, 내가 붙여 넣은 무엇을 할 것으로 보인다.
String.replaceAll 메서드를 사용하십시오. – adatapost