当前位置:主页   - 电脑 - 程序设计 - JAVA
J2SE综合-关于字符串的一些处理技巧
来源:网络   作者:   更新时间:2012-06-07
收藏此页】    【字号    】    【打印】    【关闭

  这是本人与同事在工作中对字符串处理的总结,发表出来,希望对大家有些帮助,也希望大家给予指正,谢谢!~

  import java.util.*;

  /** *

  文件标题:

  *关于字符串的一些处理方法:

  * @版本 1.0
*/
public class StringUtil {
 public StringUtil() {
 }
  /**
  * @description 字符串替代函数
  * @param source String 源字符串
  * @param be_rep_str String 需要被替换的子串
  * @param rep_str String 要替换的目标串
  * @param return_str String
  * @return String
  */
 public static String replaceStr(String source, String be_rep_str,
                 String rep_str, String return_str) {
  if (source.indexOf(be_rep_str) < 0) {
   return source;
  }
  else {
   String head = source.substring(0, source.indexOf(be_rep_str));
   String body = rep_str +
     source.substring(source.indexOf(be_rep_str) + be_rep_str.length());
   return_str = replaceStr(head + body, be_rep_str, rep_str,
               return_str);
  }
  return return_str;
 }
  public static String[] getFields(String test, String sep) { //坼分字符,将字句test按照sep进行坼分。
  sep = "u0020";
  if (test.indexOf(sep) != -1) {
   if ( (test.indexOf(sep) > test.indexOf("#")) &&
     test.indexOf("#") != -1) {
    sep = "#";
   }
  }
  else {
   sep = "#";
  }
  String[] st;
  List flds = new ArrayList();
  if (sep.equals("u0020")) {
   StringTokenizer stto = new StringTokenizer(test.trim(), sep);
   while (stto.hasMoreTokens()) {
    flds.add(stto.nextToken());
   }
   st = (String[]) flds.toArray(new String[stto.countTokens()]);
  }
  else {
   st = test.trim().split(sep);
  }
  return st;
 }
  //  public String DBC2SBC(String str)
//  {
//    int i ;
//    String result = "";
//    for (i = 0 ; i < str.length(); i++)
//    {
//      code = str.charCodeAt(i) ;
//      // “65281”是“!”,“65373”是“}”
//      if (code >= 65281 && code < 65373)
//        // “65248”是转换码距
//        result += String.fromCharCode(str.charCodeAt(i) - 65248) ;
//      else
//        result += str.charAt(i) ;
//    }
//    return result ;
//  }
  /**
  * 半角 DBC case -> 全角 SBC case
  * @param QJstr String
  * @return String
  */
 public static final String BQchange(String QJstr) {
  String outStr = "";
  String Tstr = "";
  byte[] b = null;
  for (int i = 0; i < QJstr.length(); i++) {
   try {
    Tstr = QJstr.substring(i, i + 1);
    b = Tstr.getBytes("unicode");
   }
   catch (java.io.UnsupportedEncodingException e) {
    e.printStackTrace();
   }
   if (b[3] != -1) {
    b[2] = (byte) (b[2] - 32);
    b[3] = -1;
    try {
     outStr = outStr + new String(b, "unicode");
    }
    catch (java.io.UnsupportedEncodingException e) {
     e.printStackTrace();
    }
   }
   else {
    outStr = outStr + Tstr;
   }
  }
  return outStr;
 }
  /**
  * 全角 转换成 -> 半角
  * @param QJstr String
  * @return String
  */
 public static final String QBchange(String QJstr) {
  String outStr = "";
  String Tstr = "";
  byte[] b = null;
  for (int i = 0; i < QJstr.length(); i++) {<br />   try {
    Tstr = QJstr.substring(i, i + 1);
    b = Tstr.getBytes("unicode");
   }
   catch (java.io.UnsupportedEncodingException e) {
    e.printStackTrace();
   }
   if (b[3] == -1) {
    b[2] = (byte) (b[2] + 32);
    b[3] = 0;
    try {
     outStr = outStr + new String(b, "unicode");
    }
    catch (java.io.UnsupportedEncodingException e) {
     e.printStackTrace();
    }
   }
   else {
    outStr = outStr + Tstr;
   }
  }
  return outStr;
 }
  public static void main(String aa[]) {
  String qj = "#?¥%……?*()";
  String bj = "#@$%^&*()";
  System.out.println("半角转换成全角:" + bj + " --> " + BQchange(bj));
  String s = " ";
  String qs = " ";
  System.out.println("全角转换成半角:"+qj + " -->" + QBchange(qj));
  System.out.println( (int) (QBchange(qs).toCharArray()[0]));
  System.out.println( (int) s.toCharArray()[0]);
  String dd[] = getFields("23#99#99#99", "#");
  for (int i = 0; i < dd.length; i++) {
   System.out.println("asfd" + dd[i]);
  }
  System.out.println(dd.length);
 }
}

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明