`
azure2a
  • 浏览: 32749 次
  • 性别: Icon_minigender_1
  • 来自: 承德
社区版块
存档分类
最新评论

自己做的一组字符串操作方法,可能会用上。

阅读更多
不过都是用的String效率可能不太高。
package util;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.util.Date;
import java.util.Map;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/
public class StringUtil {
  private final static String[] hexDigits = {
      "0", "1", "2", "3", "4", "5", "6", "7",
      "8", "9", "a", "b", "c", "d", "e", "f"};
  /**
   * 转换字节数组为16进制字串
   * @param b 字节数组
   * @return 16进制字串
   */
  public static String byteArrayToHexString(byte[] b) {
    StringBuffer resultSb = new StringBuffer();
    for (int i = 0; i < b.length; i++) {
      resultSb.append(byteToHexString(b));
    }
    return resultSb.toString();
  }
  private static String byteToHexString(byte b) {
    int n = b;
    if (n < 0)
      n = 256 + n;
    int d1 = n / 16;
    int d2 = n % 16;
    return hexDigits[d1] + hexDigits[d2];
  }
  /**
*
* @param origin
* @return 返回经过MD5加密的字符串
*/
public static String MD5Encode(String origin) {
    String resultString = null;
    try {
      resultString=new String(origin);
      MessageDigest md = MessageDigest.getInstance("MD5");
      resultString=byteArrayToHexString(md.digest(resultString.getBytes("UTF-8")));
    }
    catch (Exception ex) {
    }
    return resultString;
  } 
     
  /**
*
* @param s
* @param strCheck
* @return 判断s中是否含有strCheck中的串
*/
public static boolean inStr(String s,String[] strCheck){
    boolean result=false;
    for(String check:strCheck)result=result||(s.trim().indexOf(check.trim())>-1);
    return result;
  }
 
  /**
*
* @param file
* @param split
* @return 按照split分隔符取得文件的类型
*/
public static String getFileType(String file,String split){
   String in=file.trim();
   String type=in.substring(in.lastIndexOf(split)+1,in.length());
   return type;
  }
 
  /**
*
* @param file
* @param split
* @return按照split分隔符取得文件的名字
*/
public static String getFileName(String file,String split){
   String in=file.trim();
   String type=in.substring(0,in.lastIndexOf(split));
   return type;
  }
 
  /**
*
* @param s
* @param strcheck
* @return 检测s是否为待检验的类型
*/
public static boolean fileTypeChecker(String s,String strcheck){
     boolean result=false;    
     String type=getFileType(s,".");
     String[] strCheck=splitStr(strcheck,",");
     for(String check:strCheck)result=result||type.equals(check.trim());
     return result;
  }
  /**
*
* @param strInput
* @param strCheck
* @return 检验strInput串中是否含有strCheck中的串
*/
public static boolean checkStr(String[] strInput,String[] strCheck){
boolean result=false;
    for(String input:strInput)result=result||inStr(input,strCheck);
    return result;
  }
 
  /**
*
* @param str
* @param length
* @param insertStr
* @return 按照长度在某一段字符串中插入另一段字符
*/
public static String insertStr(String str,int length,String insertStr){
   String result="";
   int total=str.length();
  
   int i=0;
 
   while(true){
  
    if((i+length)<total)
     result=result+str.substring(i,i+length)+insertStr;
    else
     {
     result=result+str.substring(i,total);
     break;
     }
    i=i+length;
   }
  
   return result;
  }
 
  /**
*
* @param s
* @param strMap
* @return 把s中的字符按照map中的对应字符进行替换
*/
public static String replaceStr(String s,Map<String,String> strMap){
   for(Map.Entry<String,String> entry:strMap.entrySet()){
    s=s.replaceAll(entry.getKey(),entry.getValue());
  }
   return s;
  }
 
  /**
*
* @param str
* @param length
* @param r
* @return 切断字符串
*/
public static String getStrByLength(String str,int length,String r){
   if(str.length()<length)return str;
   String newStr=str.substring(0,length)+r;
   return newStr;
  }
 
  public static String[] splitStr(String s,String sp){
   return s.split(sp);
  }
 
  /**
*
* @param s
* @param sp
* @param type
* @return 把一组数字字符串转换为数字数组
*/
public static int[] splitStr(String s,String sp,int type){
   String[] intStr=splitStr(s,sp);
   int[] result=new int[intStr.length];
   for(int i=0;i<result.length;i++){
    result=Integer.parseInt(intStr);
   }
   return result;
  }
 
  public static String encodeStr(String input,String sourceEncode,String targetEncode){
 
   String result;
   try{
   result=new String(input.getBytes(sourceEncode),targetEncode);
   }catch(UnsupportedEncodingException e){
   result=input; 
   }
   return result;
  }
 
  public static void main(String[] args){
    //System.err.println(MD5Encode("NoPassword"));
    //System.err.println(inStr("a",new String[]{"b","b"}));
    //Map<String,String> strMap=new HashMap<String,String>();
    //strMap.put("fuck", "[-bi-]");
    //strMap.put("逼", "[-呵呵-]");
    //System.out.println(replaceStr("fuck you 逼!!",strMap));
    //for(int i:splitStr("1,232,2312,231,312",",",1))System.out.println(i);
   
    System.out.println(getFileName("ab.txt","."));  
    System.out.println(MD5Encode(new Date().toString()));   
  }
 
}
分享到:
评论

相关推荐

    c#字符串操作方法实例

    C# 字符串操作方法实例 C# 中的字符串操作方法是指在 C# 编程语言中对字符串进行操作的各种方法和技术。字符串是使用 string 关键字声明的一个字符数组,字符串对象是“不可变的”,即它们一旦创建就无法更改。 1....

    输入一个字符串,输出所有该字符串的组合情况

    - **字符串操作**:包括字符串的截取、比较、拼接等。 - **递归原理**:理解如何定义递归函数,以及如何处理基本情况和递归情况。 - **回溯法**:知道如何设计回溯算法,如何在遇到错误或无效选择时撤销操作。 - **...

    javascript字符串操作

    ### JavaScript字符串操作详解 在JavaScript中,字符串是用于表示文本数据的一种基本数据类型。...通过本文介绍的JavaScript字符串操作方法,希望能够帮助开发者在日常工作中更加熟练地使用这些工具,提高编程效率。

    phpshorthand给定一组字符串计算它独特简捷表达

    "php-shorthand"库提供了一种便捷的方式来处理字符串,尤其是计算一组字符串的独特简捷表达。这个库可能是由Kamran Ahmed SE开发并维护的,版本号为8c39eff。本文将深入探讨这个库的核心功能、如何使用以及它在字符...

    Freemarker操作字符串

    字符串操作在FreeMarker中是通过内置的指令和函数实现的。 1. **字符串拼接**: 在FreeMarker模板中,可以使用`+`运算符来连接字符串。例如: ```html , "&gt; !"&gt; ${str1 + str2} ``` 这将输出:"Hello, World...

    易语言指针操作字符串和数组

    本篇文章将深入探讨易语言中如何使用指针来操作字符串和数组,以及如何通过指针数组进行参数传递。 1. **指针基础**: - 在易语言中,指针是一个变量,存储的是其他变量的内存地址。指针变量需要先声明,然后通过`...

    VB拆分字符串,分隔字符串

    在VB(Visual Basic)编程中,处理字符串是常见的任务之一,其中包括将一个长字符串拆分成多个子字符串。这个过程通常称为“字符串拆分”或“分隔字符串”。在这个主题中,我们将深入探讨VB中如何实现这一操作,以及...

    C#实现移除字符串末尾指定字符的方法

    首先,我们需要了解C#中的字符串类(String),它提供了丰富的字符串操作方法。在C#中,字符串是不可变的,这意味着每次修改字符串都会创建一个新的字符串对象。因此,当我们需要移除字符串末尾的字符时,不能直接修改...

    Java 字符串常用方法

    在实际编程中,根据需求选择合适的方法组合,可以实现各种复杂的字符串操作。同时,要记住,虽然`String`对象是不可变的,但通过`StringBuilder`或`StringBuffer`类可以实现字符串的可变操作,这在需要多次修改字符...

    labview字符串拆分到数组 支持中文1

    在LabVIEW中处理字符串是一项常见的任务,尤其是将一个字符串拆分成多个子字符串,这通常涉及到字符串的分割操作。本篇将详细介绍如何在LabVIEW中实现“字符串拆分到数组”并支持中文字符。 一、字符串拆分的基本...

    SQL字符串操作

    SQL 字符串操作是 T-SQL 中的一组功能强大且灵活的字符串处理函数,它可以处理数值型数据和字符型数据。这些函数可以截取和修改字符串的值,转换和手机字符串相关信息,以及执行 SOUNDEX 分析。在本文中,我们将详细...

    Javascript中字符串相关常用的使用方法总结

    随着ECMAScript标准的不断发展,ES6及之后版本引入了许多新的字符串处理方法,进一步增强了JavaScript字符串操作的能力: 1. **检查字符串开头或结尾** - `startsWith(searchString[, position])` 和 `endsWith...

    列出字符串的全部排列组合

    然而,频繁地复制和连接字符串会导致效率低下,特别是在处理较大字符串或大量字符串操作时。 #### 4. 函数设计与代码组织 良好的函数设计应当遵循单一职责原则,即每个函数只负责一项具体的功能。在给定的代码中,...

    字符串重新排序

    总的来说,解决这个问题需要对字符串操作、排序算法、条件判断以及数据结构(如数组和集合)有深入的理解。通过编写代码并调试,我们可以创建一个灵活的函数,它接受一个1-9位数字字符串和一个排序条件作为输入,...

    [字符串]字符串提取(获取两个字符串中间的字符串)

    在标准的字符串方法中,没有直接提供一个功能可以获取两个已知字符串之间的子串,但我们可以通过结合几个基本方法来实现这个功能。 1. **IndexOf**:此方法用于查找指定字符串在当前字符串中的第一次出现位置。...

    字符串排列组合

    在编程领域,字符串排列组合是一个常见的算法问题,它涉及到如何生成一个字符串的所有可能的排列方式。这个主题主要与计算机科学的算法设计和技术有关,尤其是在数据结构和算法分析的课程中经常遇到。本节将深入探讨...

    labview字符串创建数组

    在LabVIEW中,字符串操作是常见的任务之一,特别是在数据处理和信息传递中。要将单个字符串创建成字符串数组,我们需要了解LabVIEW的基本数据结构和编程方法。以下是一些关于如何在LabVIEW中创建字符串数组的关键...

    Java字符串分隔方法split实践

    值得注意的是,`split()`方法在处理大量数据时可能会影响性能,因为它创建了一个子字符串数组。如果需要高效地处理大字符串,可以考虑使用`Pattern`和`Matcher`类,或者使用Java 8引入的流(Stream)API。 另外,`...

    Python字符串调用方法及实例

    以上就是Python 3.1版本中关于字符串操作的一些基础知识和实例。对于初学者来说,理解并掌握这些方法,将有助于更好地处理和操作字符串数据。在实际编程中,这些方法经常被用于数据清洗、格式化输出和信息提取等场景...

Global site tag (gtag.js) - Google Analytics