안녕하세요

프로그램 과정에서 막혔던 문제들에 대한 해결책 정리


페이지 목록

2011년 6월 3일 금요일

자바 특수문자 사용방법

특수문자 처리와  자바에서의 파일 패스에 대한 포스팅 (\ , /)

  1. 특수문자를 처리하는 방법
자바의 특수문자 처리는 아래와 같이 하는데 퍼온건데 출처를 잃어버림
1. []으로 싸주면 문자자체로 인식하는 것들. 
*  ⇒ [*] 
+  ⇒ [+] 
$  ⇒ [$] 
|  ⇒ [|] 
2. \\를 붙여줘야 하는 것들. 
( ⇒ \\( 
) ⇒ \\) 
{ ⇒ \\{ 
} ⇒ \\} 
^ ⇒ \\^ 
[ ⇒ \\[ 
] ⇒ \\]
3. 자바의 특수문자는 \을 쓴다. 
 " ⇒ \" 
4. 나머지 부호들은 괜찮은 듯 하다. 
확인된 것. 
! # % & @ ` : ; - . < > , ~ ' 
ex ) 위에 놈들 다 지워 보자.
    String c = "!\"#$%&(){}@`*:+;-.<>,^~|'[]"; 
   c = c.replaceAll("!\"#[$]%&\\(\\)\\{\\}@`[*]:[+];-.<>,\\^~|'\\[\\]", ""); 

 public static String getSTRFilter(String str){ 
  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;
}
로 한다.
이유는 특수문자를 처리하기 위해서는 \을 붙이는데 \을 특수문자로 처리하는 특수문자이기 때문에 \\\을 해야 인식이 된다.