프로그래밍/Android

[JAVA]특수문자, 패스설정

프리월드 2012. 5. 30. 17:07

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

 

  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;
}

로 한다.

이유는 특수문자를 처리하기 위해서는 \을 붙이는데 \을 특수문자로 처리하는 특수문자이기 때문에 \\\을 해야 인식이 된다.

 

 

  1. http://forums.sun.com/thread.jspa?threadID=620289&messageID=3490909
  2. http://forums.sun.com/thread.jspa?threadID=637512&messageID=3724762
  3. http://forums.pentaho.org/showthread.php?p=183433