`

字符串处理类。

阅读更多


import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

import org.apache.commons.validator.GenericValidator;


import sun.io.ByteToCharConverter;
import sun.io.MalformedInputException;
public class StringUtil{

  public StringUtil(){
  }
  /**
   *
   * @param s String
   * @return String
   */
  public static String urlDecode(String s){
    String result = null;
    if(s != null)
      result = URLDecoder.decode(s);
    return result;
  }
  /**
   *
   * @param param String
   * @return String
   */
  public static String processParameter(String param){
    if(param == null)
        return null;
    String result = null;
    try{
        result = new String(param.getBytes("ISO-8859-1"), "UTF-8");
        return result;
    }catch(UnsupportedEncodingException e){
        return param;
    }
  }
  /**
   *
   * @param s String
   * @param oldChar char
   * @return String
   */
  public static String deleteAll(String s, char oldChar){
    if(s == null)
      return null;
    String result = null;
    StringBuffer sb = new StringBuffer();
    for(int i = 0; i < s.length(); i++){
      char c = s.charAt(i);
      if(c != oldChar)
        sb.append(c);
    }
    result = sb.toString();
    return result;
  }
  /**
   * compare string
   * @param a String
   * @param b String
   * @return boolean
   */
  public static boolean compare(String a, String b){
    if(a == null)
      a = "";
    if(b == null)
      b = "";
    a = a.trim();
    b = b.trim();
    return a.equals(b);
  }
  /**
   *
   * @param email String
   * @return int
   */
  public static int validateEmail(String email){
      if(email != null)
          email = email.trim();
      if(GenericValidator.isBlankOrNull(email))
          return 0;
      return !GenericValidator.isEmail(email) ? -1 : 1;
  }
  /**
   *
   * @param string String
   * @return String
   */
  public static String convertFromISO(String string){
    if(string == null)
      return string;
    try{
      String temp_p = string;
      byte temp_b[] = temp_p.getBytes("ISO8859-1");
      String temp = new String(temp_b, "UTF-8");
      return temp;
    }catch(UnsupportedEncodingException e){
      System.err.println(e);
    }
    return string;
  }
  /**
   *
   * @param string String
   * @return String
   */
  public static String convertToISO(String string){
    if(string == null)
      return string;
    try{
      String temp_p = string;
      byte temp_b[] = temp_p.getBytes("UTF-8");
      String temp = new String(temp_b, "ISO8859-1");
      return temp;
    }catch(UnsupportedEncodingException e){
      System.err.println(e);
    }
    return string;
  }
  /**
   *
   * @param s String
   * @return String
   */
  public static String convertToUTF8(String s){
    StringBuffer sb = new StringBuffer();
    for(int i = 0; i < s.length(); i++){
      char c = s.charAt(i);
      if(c >= 0 && c <= '\377'){
        sb.append(c);
      } else{
        byte b[];
        try{
          b = Character.toString(c).getBytes("utf-8");
        }catch(Exception ex){
          System.out.println(ex);
          b = new byte[0];
        }
        for(int j = 0; j < b.length; j++){
          int k = b[j];
          if(k < 0)
            k += 256;
          sb.append("%" + Integer.toHexString(k).toUpperCase());
        }

      }
    }

    return sb.toString();
  }

  /**
   *
   * @param str String
   * @return String
   */

  public static String getEncodedFileName(String str){
    if(str == null || str.length() <= 0)
      return null;
    int dot = str.lastIndexOf(46);
    String s1;
    String s2;
    if(dot >= 0){
      s1 = str.substring(0, dot);
      s2 = str.substring(dot);
    } else{
      s1 = str;
      s2 = "";
    }
    return toUnicodeString(s1) + s2;
  }
  /**
   *
   * @param pStr String
   * @return String
   */
  public static String toUnicodeString(String pStr){
    String encodedName = "";
    try{
      byte namebytes[] = pStr.getBytes("UTF-8");
      ByteToCharConverter converter = ByteToCharConverter.getConverter("UTF-8");
      char cArray[] = converter.convertAll(namebytes);
      for(int i = 0; i < cArray.length; i++){
        String tmpStr = Integer.toHexString(cArray);
        if(tmpStr.length() < 4)
          if(tmpStr.length() == 3)
            tmpStr = "0" + tmpStr;
          else
          if(tmpStr.length() == 2)
            tmpStr = "00" + tmpStr;
          else
          if(tmpStr.length() == 1)
            tmpStr = "000" + tmpStr;
          else
            tmpStr = "0000";
        encodedName = encodedName + tmpStr;
      }

    }catch(MalformedInputException e){
      encodedName = pStr;
    }catch(UnsupportedEncodingException e){
      encodedName = pStr;
    }
    return encodedName;
  }
  /**
   *
   * @param str String
   * @return String
   */
  public static String getDecodedFileName(String str){
    if(str == null || str.length() <= 0)
      return null;
    int dot = str.lastIndexOf(46);
    String s1;
    String s2;
    if(dot >= 0){
      s1 = str.substring(0, dot);
      s2 = str.substring(dot);
    } else{
      s1 = str;
      s2 = "";
    }
    return fromUnicodeString(s1) + s2;
  }
  /**
   *
   * @param orgStr String
   * @return String
   */
  public static String fromUnicodeString(String orgStr){
    String result = "";
    if(orgStr != null && orgStr.length() > 0){
      int len = orgStr.length();
      if(len % 4 != 0){
        System.out.println("Invalid String, the length should be multiple of 4");
        return result;
      }
      for(int i = 0; i < orgStr.length() / 4; i++){
        String substr = orgStr.substring(i * 4, (i + 1) * 4);
        String tmpresult = getDecodedChar(substr);
        result = result + tmpresult;
      }

    }
    return result;
  }
  /**
   *
   * @param pStr String
   * @return String
   */
  private static String getDecodedChar(String pStr){
    int i = Integer.valueOf(pStr, 16).intValue();
    char cc = (char)i;
    String ss = String.valueOf(cc);
    return ss;
  }

  public static String toString(String s){
    if(s == null)
      return "";
    else
      return s;
  }

  public static boolean isEmpty(String string){
    return string == null || string.trim().length() == 0;
  }

  /**
   * split("separator",'a') returns {"sep","r","tor"}
   * @param src
   * @param char
   * @return        <br>
   */
  public static String[] split(String src, char separator){

    if (null != src || "".equals(src))
    {
            return src.split("separator");
    }
      return null;
  }

  public static int count(String ptr, char c){
    int coun=0, pos=0;
    while ((pos=ptr.indexOf(c,pos))!=-1){
      coun++;
      pos++;
    }
    return coun;
  }


  public static int count(String ptr, String c){
    int coun=0, pos=0;
    while ((pos=ptr.indexOf(c,pos))!=-1){
      coun++;
      pos+=c.length();
    }
    return coun;
  }

  /**
   *replace string<p>
   *exp:<br>
   *String buf = "this is an test";   <br>
   *String oldstr = "an";  <br>
   *String newstr = "a";  <br>
   *StringUtil.replace(buf,oldstr,newstr)  returns "this is a test" ;  <br>
   *public String replace(char oldChar,char newChar)  <br>
   *"mesquite in your cellar".replace('e', 'o')     returns "mosquito in your collar"  <br>
   *@param   buf     originally
   *@param   oldstr  old sub string
   *@param   newstr  new sub string
   *@return  new string   <br>
   */
   public static String replace(String buf, String oldstr, String newstr)
   {
     if(null != buf || "".equals(buf))
     {
             return buf.replaceAll(oldstr, newstr);
     }
     return null;
   }
   public static void main(String args[])
   {
           System.out.println(StringUtil.getEncodedFileName("fasdfasdfhfaklhs123123.fas"));
   }

   /**
    * 对字符串中的特殊字符"\n"加转义符"\\n"。
    *
    * @param   change[]    需转换的字符串数组
    * @return              转换后的字符串数组
    */


   public static String[]  changeNewLine(String[] change) {
       if(change != null) {
           int i = 0;
           int width = change.length;
           int index = -1;
           for (i = 0; i < width; i++) {
               index = change.indexOf("\n");
               while(index != -1) {
                   change = change.substring(0,index) + "\\n"
                               + change.substring(index + 1);
                   index = change.indexOf("\n");
               }
           }
           return change;
       }
       return change;
   }

   /**
    * 对字符串中的特殊字符"\n"加转义符"\\n"。
    *
    * @param   change[]    需转换的字符串数组
    * @return              转换后的字符串数组
    */


   public static String changeNewLine(String change) {
       if(change != null) {
           int i = 0;
           int index = -1;
               index = change.indexOf("\n");
               while(index != -1) {
                   change = change.substring(0,index) + "\\n"
                               + change.substring(index + 1);
                   index = change.indexOf("\n");
               }
           return change;
       }
       return change;
   }


}

分享到:
评论

相关推荐

    asp.net字符串处理类代码

    ### ASP.NET字符串处理类代码详解 #### 一、概述 在ASP.NET开发中,字符串处理是常见的需求之一。本文将详细介绍一个ASP.NET项目中的字符串处理类`StringHelper`,该类提供了一系列实用的方法来帮助开发者高效地...

    字符串处理类String实现

    在C++编程中,字符串处理是常见的操作,标准库提供了`std::string`类来处理字符串,但有时候为了满足特定需求或优化性能,开发者可能会选择自定义字符串类。本篇文章将详细探讨一个名为`String`的自定义实现,它采用...

    字符串操作类CString 类

    `CString`类是Microsoft Visual C++的一个非常重要的字符串处理类,它提供了丰富的字符串操作方法,类似于C++标准库中的`std::string`。这个类在Windows环境下被广泛使用,但描述中提到,这个版本的`CString`实现了...

    VC中的字符串处理类(静态库形式)

    这是我用VC写的一个字符串处理类,模仿了很多VB中字符串处理的过程,所以我命名为VBString类。在这个类里主要是以处理char指针类型为主的,当然也支持WCHAR,不过只是普通的将char * 转换出来或放进去而已,具体的...

    JAVA中处理字符串的类

    除了这些基本的字符串处理类,Java还包含`Pattern`和`Matcher`类来处理正则表达式。`Pattern`类用于编译正则表达式模式,而`Matcher`类用于在给定输入字符串中查找匹配的模式。这两个类可以执行复杂的文本分析和模式...

    字符串处理类:将GBK,UTF8字符串转化为Unicode编码的php类库.zip

    在PHP编程中,字符串处理是常见的任务之一,尤其是在处理不同编码格式的数据时。这个压缩包提供的类库专门用于处理GBK和UTF8编码的字符串,并将其转换为Unicode编码,反之亦然。下面我们将深入探讨字符串编码转换的...

    字符串查找与替换程序 文件

    String类是Java语言中最基本的字符串处理类,该类提供了许多有用的字符串处理函数,例如 substring()、indexOf()、lastIndexOf()、replace()等。这些函数可以用于字符串的截取、搜索和替换等。 StringBuffer类 ...

    Linux/windows 字符串处理CString类

    本文将深入探讨这两个字符串处理类,并对比它们的特性和使用方法。 首先,让我们来看看Windows平台上的CString类。它是Microsoft Foundation Classes (MFC) 库的一部分,设计用于简化字符串操作。CString类提供了...

    C#.NET字符串处理增强类

    这个例子“C#.NET字符串处理增强类”旨在介绍一些可能不常被开发者所熟知但非常实用的字符串处理技术和自定义扩展。 首先,我们来看一下字符串的不可变性。在C#中,`String`对象是不可变的,这意味着每次对字符串...

    工具类_字符串处理

    本篇主要聚焦于一个名为“工具类_字符串处理”的主题,它通常指的是一个包含多种字符串操作方法的类库,能够帮助开发者高效、便捷地处理各种字符串问题。下面我们将深入探讨这个主题,了解一些常见的字符串处理工具...

    纯C++ 字符串处理函数大全源码

    在这个案例中,`StringProcess.h`可能包含了`StringProcess`类的定义,其中声明了各种字符串处理函数,而`StringProcess.cpp`则实现了这些函数的具体逻辑。 描述中提到的一个关键函数是`Split`,这是一个用于字符串...

    字符串处理系统课程设计.doc

    字符串处理系统课程设计 在这个课程设计中,我们将学习如何设计和实现一个字符串处理系统,该系统具有字符串赋值、字符串长度计算、字符串复制、字符串比较、字符串查找、字符串插入和字符串删除等功能。这个系统...

    java字符串处理类

    判断一个字符是Ascill字符还是其它字符(如汉,日,...得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为2,英文字符长度为1 截取一段字符的长度,不区分中英文,如果数字不正好,则少取一个字符位 生成随机字符串

    excel vba字符串处理大全

    Excel VBA字符串处理大全 VBA 中的字符串可以分为两类:固定长度的字符串和动态字符串。固定长度的字符串声明时包含指字的字符数,例如 `Dim strFixedLong As String*100`,总是只包含 100 个字符,但字符串最长不...

    字符串比较、求串的长度、判断串是

    通过对`CMyString`类的定义和其实现细节的分析,我们了解到这是一个功能丰富的字符串处理类,支持字符串的创建、比较、长度查询、赋值等多种操作。此外,还可以基于此类进行扩展,如通过继承实现彩色字符串类,以...

    java字符串处理取出括号内的字符串

    在Java编程语言中,字符串处理是一项常见的任务,特别是在解析、分析或操作文本数据时。本篇文章将深入探讨如何从字符串中提取括号内的内容,主要关注于基础的字符串操作、正则表达式以及如何利用这些工具来实现目标...

    C++字符串处理类库及范例

    在C++编程中,字符串处理是一项至关重要的任务,它涉及到数据的输入、输出以及操作。C++标准库提供了丰富的工具来处理字符串,但有时我们还需要更高效或特定功能的库来增强我们的代码。"C++字符串处理类库及范例...

    java 字符串处理

    java 常用字符串处理工具类! java 常用字符串处理工具类!

    java字符串处理输入一个字符串和一个字符后,原字符串中所有该字符将被删除并显示出结果

    在Java编程语言中,字符串处理是一项基础且重要的任务。在这个特定的场景中,我们需要创建一个Applet程序,它能够接收用户输入的字符串和一个字符,然后从原始字符串中删除所有出现的指定字符,并显示处理后的结果。...

Global site tag (gtag.js) - Google Analytics