`
heweina2007
  • 浏览: 67698 次
  • 性别: Icon_minigender_2
  • 来自: 沈阳
社区版块
存档分类
最新评论

转义特殊字符

 
阅读更多
package common;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.List;
/**
* 改变特殊字符 
*
*/
public class ChangeTSChar {

private static String EncodeString(String inputContent)
    {
        //转义 单引号 .
        inputContent = inputContent.replaceAll("'", "’");
//        //转义 反斜杠 .
//        inputContent = inputContent.replaceAll("\"", """);
//        //转义 小于号 .
//        inputContent = inputContent.replaceAll("<", "&lt;");
//        //转义 大于号 .
//        inputContent = inputContent.replaceAll(">", "&gt;");
//        //转义 换行符 .
//        inputContent = inputContent.replaceAll("\n", "<br>");
//        //转义 空格 .
//        inputContent = inputContent.replaceAll(" ", "&nbsp;");

        //返回 编码转换后的字符串.
        return inputContent;
    }

    private static String DecodeString(String selectContent)
    {
        //转义 单引号 .
        selectContent = selectContent.replaceAll("’", "'");
//        //转义 反斜杠 .
//        selectContent = selectContent.replaceAll("&quot;", "\"");
//        //转义 小于号 .
//        selectContent = selectContent.replaceAll("&lt;", "<");
//        //转义 大于号 .
//        selectContent = selectContent.replaceAll("&gt;", ">");
//        //转义 换行符 .
//        selectContent = selectContent.replaceAll("<br>", "\n");
//        //转义 空格 .
//        selectContent = selectContent.replaceAll("&nbsp;", " ");

        //返回 编码转换后的字符串.
        return selectContent;
    }
   
    @SuppressWarnings("unchecked")
private static void excute(Object obj,String type)throws Exception{
    Class objClass = obj.getClass();
    Field[] fields = objClass.getDeclaredFields();
boolean flag1 = true;
boolean flag2 = true;
for(Field methodname:fields){

String getmethodName = "get"+methodname.getName().substring(0,1).toUpperCase()+methodname.getName().substring(1);
String setmethodName = "set"+methodname.getName().substring(0,1).toUpperCase()+methodname.getName().substring(1);
Method [] getMethods = obj.getClass().getMethods();
Method [] setMethods = obj.getClass().getMethods();
for(int i=0;i<getMethods.length;i++){
if(getMethods[i].getName().equals(getmethodName)){
flag1 = false;
break;
}else{
flag1 = true;
}
}
for(int i=0;i<setMethods.length;i++){
if(setMethods[i].getName().equals(setmethodName)){
flag2 = false;
break;
}else{
flag2 = true;
}
}

if(flag1||flag2){
continue;
}else if(!"class java.lang.String".equals(methodname.getType().toString())){
continue;
}
Method getMethod = obj.getClass().getMethod(getmethodName, new Class[]{});
Method setMethod = obj.getClass().getMethod(setmethodName, new Class[]{methodname.getType()});
String value = (String)getMethod.invoke(obj, new Object[]{});
if(value != null){
if(type!=null&&type.equals("encode")){
value = EncodeString(value);
}else if(type!=null&&type.equals("decode")){
value = DecodeString(value);
}

setMethod.invoke(obj, new Object[]{value});
}
}
    }
    /**
     * 将特殊字符转换成默认字符
     * @param obj
     */
    public static void encode(Object obj){
    if(obj == null){
    return ;
    }
    try {
excute(obj, "encode");
} catch (Exception e) {
e.printStackTrace();
}
    }
    /**
     * 将默认字符转换成特殊字符
     * @param obj
     */
    public static void decode(Object obj){
    if(obj == null){
    return;
    }
    try {
excute(obj, "decode");
} catch (Exception e) {
e.printStackTrace();
}
    }

    /**
     * 解译
     * @param list
     */
    public static void decodeList(List<Object> list){
    if(list!=null){
    for (Object object : list) {
decode(object);
}
    }
    }
   
    /**
     * 转译
     * @param list
     */
    public static void encodeList(List<Object> list){
    if(list!=null){
    for (Object object : list) {
encode(object);
}
    }
    }
}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics