`

字符串进行处理常用方法

阅读更多
因工作需要,常常需要对字符串进行处理,而String类本身不提供相应方法,所以就自己编写了一个,经过一段时间的积累现在拿出来让有需要的人看一看,有什么错误的地方也请指出来。

<p style=line-height: 150%>package xf.helper;
import java.util.ArrayList;
import java.util.StringTokenizer;
/**
* 字符串的处理
*/
public class HString
{
private String strin=null;

public HString(String strin)
{
  this.strin=strin;
}
/**
* 全部替换字符串里符合指定内容的为其它内容,与String类中不同,它使用的不是正则表达式的。
* @param String regex, 需要替换的内容
* @param String replacement, 用来替换的内容
* @return String, 字符串替换后的内容
*/
public String replaceAll(String regex,String replacement)
{
  StringBuffer sb=new StringBuffer();
  int rbegin=0;
  int rend=strin.indexOf(regex);
  int rlen=regex.length();
  while(rend>=0)
  {
   sb.append(strin.substring(rbegin,rend));
   sb.append(replacement);
   rbegin=rend+rlen;
   rend=strin.indexOf(regex,rbegin);
  }
  sb.append(strin.substring(rbegin));
  strin=sb.toString();
  return strin;
}

<p style=line-height: 150%> /**
* 切割字符串,用字符切割,并从指定位置开始
* @param char c, 用来切割的字符
* @param int it, 起始切割位置
* @return String[],切割后的字符串数组
*/
public String[] split(char c, int it)
    {
        ArrayList arraylist = new ArrayList();
  char[] chark=strin.toCharArray();
  StringBuffer sb=new StringBuffer();
  for(int i=it;i<chark.length;i++)
  {
   if(chark[i]==c)
   {
    arraylist.add(sb.toString());
    sb=new StringBuffer();
   }else{
    sb.append(chark[i]);
    if(i==chark.length-1)
    {
     arraylist.add(sb.toString());
    }
   }
  }
 
  int k=arraylist.size();
  String as[]=new String[k];
        return (String[])arraylist.subList(0,k).toArray(as);
    }

/**
* 用指定字符切割字符串
* @param char c, 切割用的字符
* @return String[], 切割成的字符串数组
*/
    public String[] split(char c)
    {
        return split(c, 0);
    }

<p style=line-height: 150%> /**
* 用字符串切割字符串
* @param String c, 用来切割的字符串
* @param String[], 切割成的字符串
*/
public String[] split(String c)
{
  System.out.println( "分隔符: " + c );
  if (strin == null)
  {
   return null;
  }

<p style=line-height: 150%>  ArrayList arraylist = new ArrayList();
  int begin = 0;
  int end = 0;
  while ((begin = strin.indexOf(c, end)) != -1)
  {
   String s2 = strin.substring(end, begin);
   if ( s2.trim().length() > 0 ) { // 过滤掉空格的
    arraylist.add(strin.substring(end, begin));
   }
   end = begin + c.length();
  }
  if (end != strin.length())
  {
   arraylist.add(strin.substring(end));
  }
 
  int k=arraylist.size();
  String as[]=new String[k];
  System.out.println( "分隔数量 : " + as.length );
        return (String[])arraylist.subList(0,k).toArray(as);
}

<p style=line-height: 150%> /**
* 把一个字符转化成二进制的
* @param char c, 原字符
* @param String, 二进制字符串
*/
public static String toBin(char c) {
  int k = 0x8000;
  StringBuffer sb = new StringBuffer(16);
  for (int i = 0; i < 16; k>>>=1,i++)
  {
   sb.append(((c&k) != 0)?1:0);
  }
  return sb.toString();
}

<p style=line-height: 150%> /**
* 判断一个字符是Ascill字符还是其它字符(如汉,日,韩文字符)
* @param char c, 需要判断的字符
* @return boolean, 返回true,Ascill字符
*/
public static boolean isLetter(char c) {
  int k = 0x80;
  return c/k == 0?true:false;
}

<p style=line-height: 150%> /**
* 得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为2,英文字符长度为1
* @param String s ,需要得到长度的字符串
* @return int, 得到的字符串长度
*/
public static int length(String s) {
  char[] c = s.toCharArray();
  int len = 0;
  for (int i = 0; i < c.length; i++)
  {
   len++;
   if (!isLetter(c[i]))
   {
    len++;
   }
  }
  return len;
}

<p style=line-height: 150%> /**
* 从开始位置获取len个字符位的字符串,不区分中英文
* @param String origin, 原始字符串
* @param int len, 切割的长度(一个汉字长度按2算的)
* @return String, 切割后的字符串
*/
public static String substring(String origin, int len) {
  return substring(origin, 0, len);
}

<p style=line-height: 150%> /**
* 截取一段字符的长度,不区分中英文,如果数字不正好,则多取一个字符位
* @param  String origin, 原始字符串
* @param  int begin, 开始位置
* @param  int len, 截取长度(一个汉字长度按2算的)
* @return String, 返回的字符串
*/
public static String substring(String origin, int begin, int len) {
  if (origin == null)
  {
   return origin;
  }
  int sBegin = (begin < 0)?0:begin;
  // 越出范围处理
  if (len < 1 || sBegin > origin.length())
  {
   return "";
  }

<p style=line-height: 150%>  if (len + sBegin > origin.length())
  {
   return origin.substring(sBegin);
  }
  char[] c = origin.toCharArray();
  StringBuffer sb = new StringBuffer();
  for (int i = sBegin,j = sBegin; i < (sBegin + 2*len); i++,j++)
  {
   if (j >= c.length) break;

<p style=line-height: 150%>   sb.append(c[j]);
   if (!isLetter(c[j]))
   {
    i++;
   }
  }
  return sb.toString();
}
public String toString() {
  return strin;
}

<p style=line-height: 150%> /**
* 把一个html的字符串转换成网页上显示的字符串
* @param String html, 原html格式的字符串
* @return String, 转换后网页显示格式的字符串
*/
public static String htmlToWeb( String html ) {
  if (html == null || html.length() == 0)
  {
   return "";
  }
  char[] c = html.toCharArray();
  StringBuffer sb = new StringBuffer();
  for (int i = 0; i < c.length; i++)
  {
   switch (c[i])
   {
   case >:
    sb.append(">");
    break;
   case <:
    sb.append("<");
    break;
   case :
    sb.append(" ");
    break;
   case ":
    sb.append(""");
    break;
   case &:
    sb.append("&");
    break;
   case \n:
    sb.append("
");
    break;
   default:
    sb.append(c[i]);
   }
  }
  return sb.toString();
}
}
分享到:
评论

相关推荐

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

    其中,字符串处理是非常重要的一个方面,涉及到数据的读取、修改、拼接等操作。本文将详细介绍JavaScript中与字符串相关的常用方法,帮助开发者更好地理解和掌握这些功能。 #### 二、基础字符串操作 1. **字符串...

    常用字符串文本处理方法

    常用的文本处理方法,比如过滤关键词。文本编码。去除 htmlCode 中所有的HTML标签(包括标签中的属性)。截取字符串。将Gb2312编码的字符串转换为utf-8。判断是否有非法字符。分割字符串。检测含中文字符串实际长度。...

    Java 字符串常用方法

    以下是一些Java `String`类中常用的方法,这些方法对于理解和操作字符串至关重要。 1. **创建字符串** - `new String()`: 使用此构造函数创建一个新的字符串对象,可以传入字符数组或另一个字符串作为参数。 - `...

    VC字符串转换的常用方法

    在VC++编程环境中,字符串处理是一项非常常见的任务。在不同的编程环境或库之间,字符串的表示方式可能会有所不同,因此需要进行转换。本文将详细介绍在VC++及其.NET框架中字符串转换的常用方法,帮助开发者理解和...

    字符串处理函数列表,字符串处理函数列表

    字符串处理函数是编程语言中非常重要的工具,它们用于操作、分析和操纵文本数据。以下是一些常见的字符串处理函数,这些函数通常在C语言或其他类似语言中使用,虽然这里没有提供具体的编程语言环境,但理解这些函数...

    C#字符串常用方法和实例,适合初学者

    在C#编程语言中,字符串处理是日常编码中极为常见且重要的部分。本文将深入探讨C#中字符串的常用方法及其应用示例,特别适合初学者掌握基础的字符串操作技巧。 ### 字符串不可变性 C#中的字符串具有一个核心特性...

    字符串排序方法

    ### 字符串排序方法 在JavaScript以及其他的编程语言中,字符串排序是一个常见的...这些方法可以帮助开发者更好地处理字符串排序问题,提高代码的效率和可读性。根据具体的需求和场景选择合适的排序算法是非常重要的。

    Python语言基础:字符串常用方法.pptx

    这些方法是Python字符串处理的基础,理解并熟练运用它们可以极大地提高编写程序的效率。在实际编程中,可以根据需求灵活运用这些方法,例如在数据分析、文本处理、日志分析等场景下,它们都发挥着重要的作用。通过...

    常用字符串处理整理.rar

    "常用字符串处理整理.rar"这个压缩包文件包含了一些与字符串处理相关的代码示例,如StringUtil.cs、Jscript.cs和MyControl.cs。接下来,我们将深入探讨这些文件可能涉及的字符串处理知识点。 首先,StringUtil.cs...

    常用字符串处理函数

    以下是一些常用的字符串处理函数的详细解释: 1. **stpcpy**: 这个函数用于将源字符串`source`复制到目标字符串`destin`中,函数返回的是目标字符串的结束字符的指针。这意味着它不仅拷贝了字符串,还自动添加了...

    java中常用字符串方法总结

    本文将深入探讨Java中的一些常用字符串方法,帮助你更好地理解和运用它们。 1. **创建字符串对象** 在Java中,有多种方式来创建字符串对象,如通过`new`关键字、使用`String`字面量或者通过`StringBuffer/...

    PHP字符串处理讲述了很多关于字符串的常用用法

    本篇文章将深入探讨PHP中的一些常用字符串处理方法和技术。 #### 二、PHP中的字符串变量 字符串变量用于存储文本数据。在PHP中定义字符串变量非常简单,只需使用等号(`=`)将其赋值即可。例如: ```php $txt = ...

    详解C++ string常用截取字符串方法

    本文将详细解析两种常用的C++ `std::string`截取字符串的方法:`find`和`find_last_of`,以及如何结合使用它们来满足各种字符串处理需求。 1. `find`方法: `find`方法用于在字符串中查找指定子字符串`strSub`的第...

    常用字符串处理函数-求子字符串,字符串分割,编码转换.

    本文将深入探讨几个常用的字符串处理函数,包括如何求取子字符串、进行字符串分割以及执行编码转换。这些功能在网页开发、数据处理和文本分析等场景下尤为关键。 #### 求子字符串 求子字符串通常涉及到两个主要的...

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

    在VB(Visual Basic)编程中,处理字符串是常见的任务之一,其中包括将一个长字符串拆分成多个子字符串。这个过程通常称为“字符串拆分”或“分隔字符...通过实践和理解这些内容,你将在VB字符串处理方面变得更加熟练。

    VB字符串处理函数_字符串处理函数_VB_

    本资料主要汇总了VB中的常用字符串处理函数,适用于初学者学习和参考。 1. **Left()** 函数:返回字符串的左部指定长度的部分。例如,`Left("Hello World", 3)` 返回 "Hel"。 2. **Right()** 函数:与Left()相反,...

    C_中字符串常用的处理方法

    以下是一些C#中字符串处理的常用方法: 1. **计算字符串长度**: 使用`Length`属性可以获取字符串中的字符数量。例如: ```csharp string myString = "This is a test!"; Console.WriteLine("Text's length is ...

    JAVA中字符-字符串常用的方法.doc

    JAVA 中字符-字符串常用的方法 JAVA 中字符-字符串常用的方法是指在 Java 编程语言中处理字符和字符串的各种方法。...Java 中的字符-字符串常用方法为开发者提供了便捷的字符串处理方式,使得开发更加高效和方便。

    C语言字符串处理函数

    几个字符串处理函数增强版 常用需求基本都能完成 已经编译成DLL 函数列表 兼容字符和串 void revstr char str 字符串反转 int substring char res int pos int len char substr 从pos开始取len个字符到substr中 ...

    linux下c字符串操作常用方法

    本文将深入探讨在Linux下C语言处理字符串的一些常见方法,包括去除字符串的左右空格、字符串的连接、提取子字符串、大小写转换、字符串与数字之间的相互转换以及字符串的反转。以下是对这些操作的详细讲解: 1. ...

Global site tag (gtag.js) - Google Analytics