오늘도 삽질중

[android] 특수문자 \ 제거하기 본문

안드로이드

[android] 특수문자 \ 제거하기

Choi3950 2018. 8. 10. 10:24
반응형

특수문자 제거하는 블로그는 많이 있지만 , 개인적으로 정리할 용도로 작성합니다.


모든 특수문자 제거


String match = "[^\uAC00-\uD7A3xfe0-9a-zA-Z\\s]";
      str =str.replaceAll(match, "");


출처: http://jang8584.tistory.com/97 [개발자의 길]




위 코드는 모든 특수문자를 제거합니다. 



하지만 제 경우에는 다른방식으로 제거해야했습니다.


[" {\"Auction_User_ImageURL\":\"127.0.0.1\\\/img_upload\\\/20180320_212954.jpg\",\"Auction_Price\":\"20000\",\"Auction_UserName\":\"받아보니벽돌\",\"Auction_Time\":\"2018-08-10 07:53:55\",\"TYPE\":\"3002\"}","{\"Auction_User_ImageURL\":\"127.0.0.1\\\/img_upload\\\/20180320_212954.jpg\",\"Auction_Price\":\"25000\",\"Auction_UserName\":\"받아보니벽돌\",\"Auction_Time\":\"2018-08-10 07:54:02\",\"TYPE\":\"3002\"}"]



안드로이드에서 JSONArray 데이터를 받아왔는데 이런형식으로 로그가 찍혀서 인식이 안되더군요.


그래서 여러 블로그를 찾아보고 해답을 얻었습니다.


String ReplaceData = RedisData.replaceAll("\\\\", ""); //문장에서 특수문자 \ 모두 제거

String ReplaceData_one = ReplaceData.replaceFirst("\"", ""); //문장 첫 부분에서 " 제거

//잘보시면 [ 앞에 " 가 있기때문에 인식이 안됩니다.


String ReplaceData_two = replaceLast(ReplaceData_one, "\"", ""); //문장 마지막 부분 " 제거


replaceLast 는 제공해주지 않는 함수라서 별도로 다른분이 구현한것을 사용했습니다.


private static String replaceLast(String string, String toReplace, String replacement) {

int pos = string.lastIndexOf(toReplace);

if (pos > -1) {

return string.substring(0, pos)+ replacement + string.substring(pos + toReplace.length(), string.length());

} else {

return string;

}

}


출처 : http://pandorica.tistory.com/5





반응형
Comments