递归去除集合中的空格(集合中可能包括集合,Map、List)

    /** 
     * 递归去除集合中所有的字符串的空格
     * <功能详细描述>
     * @param param 请求参数
     * @return
     * @see [类、类#方法、类#成员]
     */
    public static Map<String, Object> trimR(Map<String, Object> param)
    {
        if (null != param && param.size() > 0)
        {
            // 集合不为空则开始递归去除字符串的空格
            for(Map.Entry<String, Object>  entry : param.entrySet())
            {
                param.put(entry.getKey(), subTrimR(param.get(entry.getKey())));
            }
        }
        return param;
    }
    
    @SuppressWarnings("all")
    private static Object subTrimR(Object subValue)
    {
        if (null == subValue)
        {
            return subValue;
        }
        else if (subValue instanceof String)
        {
            subValue = ((String)subValue).trim();
        }
        else if (subValue instanceof Map)
        {
            Map<String, Object> subParam = (Map<String, Object>)subValue;
            for(Map.Entry<String, Object>  entry : subParam.entrySet())
            {
                subParam.put(entry.getKey(), subTrimR(subParam.get(entry.getKey())));
            }
        }
        else if (subValue instanceof List)
        {
            List<Object> subParam = (List<Object>)subValue;
            for (int i = subParam.size() - 1; i >= 0; i--)
            {
                // 获取处理之后的参数
                Object temp = subTrimR(subParam.get(i));
                // 删除掉指定位置的值
                subParam.remove(i);
                // 将参数从新放入指定位置
                subParam.add(i, temp);
            }
        }
        return subValue;
    }

猜你喜欢

转载自lsz1023-126-com.iteye.com/blog/2324479