java字符串代码

 

/**
     * 将指定byte数组以16进制的形式打印到控制台
     *
     *
@param hint
     *            String
     *
@param b
     *            byte[]
     *
@return void
     */

   
public static void printHexString(String hint, byte[] b)
    {
       System.out.print(hint);
       
for (int i = 0; i < b.length; i++)
        {
            String hex =Integer.toHexString(b[i] & 0xFF);
           
if (hex.length() ==1)
            {
                hex = '0' +hex;
            }
           System.out.print(hex.toUpperCase() + " ");
        }
       System.out.println("");
    }

 

 

 

 

 

 

/**
     * 去掉字符串中重复的子字符串
     *
     *
@param str
     *
@return String
     */

   
private static String removeSameString(String str)
    {
        Set<String> mLinkedSet =
newLinkedHashSet<String>();
        String[] strArray =str.split(" ");
        StringBuffer sb =
newStringBuffer();

       
for (int i = 0; i < strArray.length; i++)
        {
           
if(!mLinkedSet.contains(strArray[i]))
            {
               mLinkedSet.add(strArray[i]);
                sb.append(strArray[i] +" ");
            }
        }
       System.out.println(mLinkedSet);
       
return sb.toString().substring(0, sb.toString().length() -1);
    }

 

 


//过滤特殊字符
public static Stringencoding(String src){
       
if (src==null)
           
return"";
        StringBuilder result=
newStringBuilder();
       
if (src!=null){
            src=src.trim();
           
for (intpos=0;pos<src.length();pos++){
               
switch(src.charAt(pos)){
                   
case'/"':result.append("&quot;");break;
                   
case'<':result.append("&lt;");break;
                   
case'>':result.append("&gt;");break;
                   
case'/'':result.append("&apos;");break;
                   
case'&':result.append("&amp;");break;
                   
case'%':result.append("&pc;");break;
                   
case'_':result.append("&ul;");break;
                   
case'#':result.append("&shap;");break;
                   
case'?':result.append("&ques;");break;
                   
default:result.append(src.charAt(pos));break;
                }
            }
        }
       
return result.toString();
    }
   
//反过滤特殊字符
    public static Stringdecoding(String src){
       
if (src==null)
           
return"";
        String result=src;
       result=result.replace("&quot;","/"").replace("&apos;", "/'");
       result=result.replace("&lt;","<").replace("&gt;", ">");
       result=result.replace("&amp;","&");
       result=result.replace("&pc;","%").replace("&ul", "_");
        result=result.replace("&shap;","#").replace("&ques", "?");
       
return result;
    }

//利用反射调用一个继承层次上的函数族,比如安装程序,有安装数据库的,安装文件系统的等,命名均已“install”开始,你就可以将参数part设为“install”,src是其实类实例,root是终止父类
    public static <T> void invokeMethods(Stringpart,T src,Class root) throws ExceptionManager{
       
if (root!=null){
           
if (!root.isInstance(src))return;
           root=(Class)root.getGenericSuperclass();
        }
        HashMap<String,Method>invokees=
newHashMap<String,Method>();
        Classtarget=src.getClass();
       
do{
            Method []methods=target.getDeclaredMethods();
           
for (Methodmethod:methods){
                Stringmn=method.getName();
                BooleanisPass=mn.startsWith(part);
               
if (isPass){
                    Integernopt=method.getParameterTypes().length;
                    BooleanisStatic=Modifier.isStatic(method.getModifiers());
                   
if((nopt==0)&&(!isStatic)){
                       
if(!invokees.containsKey(mn))
                           invokees.put(mn, method);
                    }
                }
            }
           target=(Class)target.getGenericSuperclass();
        }
while(target!=root);
        Iterator<String>methods=invokees.keySet().iterator();
       
while (methods.hasNext()){
            Methodinvokee=invokees.get(methods.next());
            Booleanaccess=invokee.isAccessible();
            invokee.setAccessible(
true);
           
try {
               invokee.invoke(src);
            }
catch(InvocationTargetException e) {
               
throwExceptionManager.wrap(e.getTargetException());
            }
catch (Exceptione){}
           invokee.setAccessible(access);
        }
    }

 

/**
     * 对给定的字符数组进行字典排序
     *
@param chs 目标字符数组
     *
@param upperFisrt 大写字母是否在前
     *
@return 排序后的字符数组
     */

   
public static char[] sortChars(char[] chs, final boolean upperFisrt)
    {
        Character[] srcArray =
newCharacter[chs.length];
       
char[] retArray = new char[chs.length];
       
int index = 0;
       
       
for(char ch: chs)
        {
            srcArray[index++] =ch;
        }
       
        Arrays.sort(srcArray,
newComparator<Character>()
        {
           
public int compare(Character c1,Character c2)
            {
               
char ch1 =Character.toUpperCase(c1);
               
char ch2 =Character.toUpperCase(c2);

               
if(ch1 == ch2)
                {
                   
int tempRet =c1.charValue() - c2.charValue();
                   
return upperFisrt? tempRet:-tempRet;
                }
               
else
                {
                   
return ch1 -ch2;
                }
            }
        });
       
        index = 0;
       
       
for(char ch: srcArray)
        {
            retArray[index++] =ch;
        }
       
       
return retArray;
    }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值