특수문자 처리와 자바에서의 파일 패스에 대한 포스팅 (\ , /)
- 특수문자를 처리하는 방법
자바의 특수문자 처리는 아래와 같이 하는데 퍼온건데 출처를 잃어버림
1. []으로 싸주면 문자자체로 인식하는 것들.
* ⇒ [*]
+ ⇒ [+]
$ ⇒ [$]
| ⇒ [|]
2. \\를 붙여줘야 하는 것들.
( ⇒ \\(
( ⇒ \\(
) ⇒ \\)
{ ⇒ \\{
} ⇒ \\}
^ ⇒ \\^
[ ⇒ \\[
] ⇒ \\]
3. 자바의 특수문자는 \을 쓴다.
" ⇒ \"
4. 나머지 부호들은 괜찮은 듯 하다.
확인된 것.
! # % & @ ` : ; - . < > , ~ '
ex ) 위에 놈들 다 지워 보자.
String c = "!\"#$%&(){}@`*:+;-.<>,^~|'[]";
String c = "!\"#$%&(){}@`*:+;-.<>,^~|'[]";
c = c.replaceAll("!\"#[$]%&\\(\\)\\{\\}@`[*]:[+];-.<>,\\^~|'\\[\\]", "");
public static String getSTRFilter(String str){
int str_length = str.length();
int str_length = str.length();
String strlistchar = "";
String str_imsi = "";
String []filter_word = {"","\\.","\\?","\\/">\\~","\\!","\\@","\\#","\\$","\\%","\\^","\\&","\\*","\\(","\\)","\\_","\\+","\\=","\\|","\\\\","\\}","\\]","\\{","\\[","\\\"","\\'","\\:","\\;","\\<","\\,","\\>","\\.","\\?","\\/"};
for(int i=0;i<filter_word.length;i++){
//while(str.indexOf(filter_word[i]) >= 0){
str_imsi = str.replaceAll(filter_word[i],"");
str = str_imsi;
//}
}
return str;
}
2.path에 대한 ..
"\' 를 / 로 바꾸어야 하는데.
일반적으로 생각 하듯이
private String getJabaPath(String original){
// file:/ path가 되게 변경
System.out.println("trans start");
String result= "file:/";
result +=original.replaceAll("\\", "/");
System.out.println("trans end");
return result;
}
하였더니 오류가 난다 .
unexpected internal error 란다.
해결은
private String getJabaPath(String original){
// file:/ path가 되게 변경
System.out.println("trans start");
String result= "file:/";
result +=original.replaceAll("\\\\", "/");
System.out.println("trans end");
return result;
}
로 한다.
이유는 특수문자를 처리하기 위해서는 \을 붙이는데 \을 특수문자로 처리하는 특수문자이기 때문에 \\\을 해야 인식이 된다.