⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stringutils.java

📁 负责公文的传输及一些处理功能
💻 JAVA
字号:
/*
 * StringUtils.java
 * Copyright (c) 2000-2001 Brad D Matlack.
 * License http://www.gnu.org/copyleft
 */
package com.example.util;

import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.NoSuchElementException;
import java.util.StringTokenizer;

/**
 * StringUtils has code borrowed from org.apache.turbine.util.StringUtils
 */
public class StringUtils
{

    /**
     * Remove Underscores from a string and replaces first
     * Letters with Capitals.  foo_bar becomes FooBar
     */
    public static String removeUnderScores (String data)
    {
        String temp = null;
        StringBuffer out = new StringBuffer();
        temp = data;

        StringTokenizer st = new StringTokenizer(temp, "_");
        while (st.hasMoreTokens())
        {
            String element = (String) st.nextElement();
            out.append ( capitalize(element));
        }
        return out.toString();
    }

    /**
     * Makes the first letter caps and leaves the rest as is.
     */
    public static String capitalize ( String data )
    {
        StringBuffer sbuf = new StringBuffer(data.length());
        sbuf.append(data.substring(0, 1).toUpperCase());
        sbuf.append(data.substring(1));
        return sbuf.toString();
    }

    /**
     * Capitalizes a letter.
     */
    public static String capitalize ( java.lang.String data, int pos )
    {
        StringBuffer buf = new StringBuffer(data.length());
        buf.append( data.substring(0,pos -1) );
        buf.append( data.substring(pos - 1,pos).toUpperCase() );
        buf.append( data.substring(pos, data.length()) );
        return buf.toString();
    }

    /**
     * un-capitalizes a letter.
     */
    public static String unCapitalize ( String data, int pos )
    {
        StringBuffer buf = new StringBuffer(data.length());
        buf.append( data.substring(0, pos -1) );
        //System.out.println("1:" + buf.toString());
        buf.append( data.substring(pos - 1, pos).toLowerCase() );
        //System.out.println("1:" + buf.toString());
        buf.append( data.substring(pos, data.length()) );
        //System.out.println("1:" + buf.toString());
        return buf.toString();
    }

    /**
     * Splits the provided CSV text into a list.
     *
     * @param text      The CSV list of values to split apart.
     * @param pos       The piece of the array
     * @return          The list of values.
     */
    public static String[] split(String text, String separator)
    {
        StringTokenizer st = new StringTokenizer(text, separator);
        String[] values = new String[st.countTokens()];
        int pos = 0;
        while (st.hasMoreTokens())
        {
            values[pos++] = st.nextToken();
        }
        return values;
    }




    /**
     * Joins the elements of the provided array into a single string
     * containing a list of CSV elements.
     *
     * @param list      The list of values to join together.
     * @param separator The separator character.
     * @return          The CSV text.
     */
    public static String join(String[] list, String separator)
    {
        StringBuffer csv = new StringBuffer();
        for (int i = 0; i < list.length; i++)
        {
            if (i > 0)
            {
                csv.append(separator);
            }
            csv.append(list[i]);
        }
        return csv.toString();
    }

    /**
     * 将字符串中tag替换成为指定的info,只替换一次
     * @param source,原来的字符串
     * @param info,替换tag的字符串
     * @param tag,要被替换掉的tag
     * @return 替换后的内容
     */
    public static StringBuffer replace(String source, String info, String tag) {
        if ((source == null) || (source.length() == 0))
            return new StringBuffer("");

    	if ((info == null) || (tag == null) || (tag.length() == 0))
            return new StringBuffer(source);

        int index = source.indexOf(tag);
        if (index < 0)
            return new StringBuffer(source);

        int length = tag.length();
        StringBuffer ret = new StringBuffer(source);
        ret.replace(index, index+length, info);
        return ret;
    }

    /**
     * 将字符串中所有的tag全部替换成为指定的info
     * @param source,原来的字符串
     * @param info,替换tag的字符串
     * @param tag,要被替换掉的tag
     * @return 替换后的内容
     */
    public static String replaceAll(String source, String info, String tag) {
        if ((source == null) || (source.length() == 0))
            return "";

    	if ((info == null) || (tag == null) || (tag.length() == 0))
            return source;

        int index = source.indexOf(tag);
        boolean valid = (index >= 0);
        if (!valid)
            return source;

        StringBuffer ret = new StringBuffer();
        int start = 0;
        int length = tag.length();
        while(valid) {
            ret.append(source.substring(start, index));
            ret.append(info);
            start = index + length;
            index = source.indexOf(tag, start);
            valid = (index >= 0);
        }
        ret.append(source.substring(start));
        return ret.toString();
    }

    /**
     * 将字符串中所有的tag全部替换成为指定的info
     * @param source,原来的字符串
     * @param info,替换tag的字符串
     * @param tag,要被替换掉的tag
     * @return 替换后的内容
     */
    public static String replaceAll(String source, String info,String startTag, String endTag ) {
        if((source == null) || (source.length() == 0)){return "";}
    	if((info == null) || (startTag == null) || (startTag.length() == 0) || (endTag == null) || (endTag.length() == 0) ){
          return source;
    	}
        int sIndex = source.indexOf(startTag);
        int eIndex = source.indexOf(endTag);
        boolean valid = (sIndex >= 0 && eIndex >= 0);
        if (!valid){
          return source;
        }else{
          if (sIndex>eIndex){
            eIndex = source.indexOf(endTag, sIndex);
          }
        }
        int sLength = startTag.length();
        int eLength = endTag.length();
        StringBuffer ret = new StringBuffer();
        int start = 0;
        while(valid) {
            info=source.substring(sIndex+1,eIndex).trim();
            ret.append(source.substring(start, sIndex+1));
            ret.append(info);
            ret.append(endTag);
            start = eIndex+1;
            sIndex = source.indexOf(startTag, start);
            eIndex = source.indexOf(endTag, start);
            valid = (sIndex >= 0 && eIndex >= 0 && eIndex > sIndex);
        }
        ret.append(source.substring(start));
        return ret.toString();
    }

    /**
     * 将输入字符中的SQL保留字进行替换,目前只替换英文半角的单引号'
     * 单引号替换方法:一个单引号换成连续的两个单引号,例如'ABC'D替换成''ABC''D
     * @param s
     * @return
     */
    public static String getSQLencode(String s){
	if ((s == null) || (s.length() == 0))
	    return "";
	StringBuffer sb = new StringBuffer();
	char c;
	for(int i = 0; i < s.length(); i++) {
	    c = s.charAt(i);
	    switch (c){
		case '\'':
		    sb.append("''");
		    break;
		default:
                  try{
                    sb.append(c);
                  }catch(Exception e){

                  }
	    }
	}
	return sb.toString();
 }

    //对给定字符进行URL编码
    public static String encode(String value) {
      if(value.length()==0) return "";
      return java.net.URLEncoder.encode(value);
    }

    //对给定字符进行URL解码
    public static String decode(String value) {
      if(value.length()==0) return "";
      return java.net.URLDecoder.decode(value);
    }

 /**
  * 将输入字符中的格式化成precision指定的程度,截掉的部分用'...'布齐
  */
  public static String getFormatString(String s,int precision){
    String retValue="";
    if((s == null) || (s.length() == 0)) retValue="";
    if(s.length()<=precision)  retValue=s;
    if(s.length()==precision+1) retValue=s;
    if(s.length()>precision+1) retValue=s.substring(0,precision-1)+"...";
    return retValue;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -