- 浏览: 35341 次
- 性别:
- 来自: 武汉
文章分类
最新评论
因工作需要,常常需要对字符串进行处理,而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();
}
}
<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();
}
}
发表评论
-
Java读取XML文件的工具类
2013-11-06 22:35 990写道 package com.imct.util ... -
java读写xml文件
2013-11-06 22:29 454import java.io.File; import j ... -
jaxb 对象XML list 互转
2013-12-02 22:01 1964写道 import java.lan ... -
Java时间格式转换大全
2013-09-13 17:40 567import java.text.*; import ja ... -
MongoDB与Jackson JSON结合实现接口敏捷开发
2013-09-09 22:51 404MongoDB与Jackson JSON结合实现接口 ... -
JSON-lib框架,转换JSON、XML不再困难
2013-09-08 21:48 540Json-lib可以将Java对象 ... -
json格式转换成javaBean对象的方法
2013-09-08 21:27 2452这个贴可以参考。 http://bbs.csdn.net/ ... -
Java 往 MongoDB 插入文档的几种方法
2013-09-05 23:42 953java 写道 package com.easyway.m ... -
hbase
2013-09-04 23:16 587http://kim-miao.iteye.com/blog/ ... -
win7 64位系统下java开发环境搭建
2011-09-06 22:55 3352win7 64位系统下java开发环境搭建jDK 6mys ... -
Java的线程的实现
2011-03-03 10:12 740线程与进程是类似的,像所有的顺序执行的程序一样,线程也有开头, ... -
遍历map
2011-03-02 21:40 1130import java.util.HashMap; impor ... -
正则表达式
2010-05-30 08:34 589"^\d+$" //非负整数(正整数 + ... -
Java Socket网络编程初级入门
2010-05-30 08:23 660事实上网络编程简单的理解就是两台计算机相互通讯数据而已,对于程 ... -
dom4j轻松地处理XML文档
2010-05-30 08:21 667dom4j是Java平台中一个简单易用的XML处理工具,它使用 ... -
50个常用sql语句
2010-05-30 07:56 870Student(S#,Sname,Sage,Ssex) 学生表 ...
相关推荐
其中,字符串处理是非常重要的一个方面,涉及到数据的读取、修改、拼接等操作。本文将详细介绍JavaScript中与字符串相关的常用方法,帮助开发者更好地理解和掌握这些功能。 #### 二、基础字符串操作 1. **字符串...
常用的文本处理方法,比如过滤关键词。文本编码。去除 htmlCode 中所有的HTML标签(包括标签中的属性)。截取字符串。将Gb2312编码的字符串转换为utf-8。判断是否有非法字符。分割字符串。检测含中文字符串实际长度。...
以下是一些Java `String`类中常用的方法,这些方法对于理解和操作字符串至关重要。 1. **创建字符串** - `new String()`: 使用此构造函数创建一个新的字符串对象,可以传入字符数组或另一个字符串作为参数。 - `...
在VC++编程环境中,字符串处理是一项非常常见的任务。在不同的编程环境或库之间,字符串的表示方式可能会有所不同,因此需要进行转换。本文将详细介绍在VC++及其.NET框架中字符串转换的常用方法,帮助开发者理解和...
字符串处理函数是编程语言中非常重要的工具,它们用于操作、分析和操纵文本数据。以下是一些常见的字符串处理函数,这些函数通常在C语言或其他类似语言中使用,虽然这里没有提供具体的编程语言环境,但理解这些函数...
在C#编程语言中,字符串处理是日常编码中极为常见且重要的部分。本文将深入探讨C#中字符串的常用方法及其应用示例,特别适合初学者掌握基础的字符串操作技巧。 ### 字符串不可变性 C#中的字符串具有一个核心特性...
### 字符串排序方法 在JavaScript以及其他的编程语言中,字符串排序是一个常见的...这些方法可以帮助开发者更好地处理字符串排序问题,提高代码的效率和可读性。根据具体的需求和场景选择合适的排序算法是非常重要的。
这些方法是Python字符串处理的基础,理解并熟练运用它们可以极大地提高编写程序的效率。在实际编程中,可以根据需求灵活运用这些方法,例如在数据分析、文本处理、日志分析等场景下,它们都发挥着重要的作用。通过...
"常用字符串处理整理.rar"这个压缩包文件包含了一些与字符串处理相关的代码示例,如StringUtil.cs、Jscript.cs和MyControl.cs。接下来,我们将深入探讨这些文件可能涉及的字符串处理知识点。 首先,StringUtil.cs...
以下是一些常用的字符串处理函数的详细解释: 1. **stpcpy**: 这个函数用于将源字符串`source`复制到目标字符串`destin`中,函数返回的是目标字符串的结束字符的指针。这意味着它不仅拷贝了字符串,还自动添加了...
本文将深入探讨Java中的一些常用字符串方法,帮助你更好地理解和运用它们。 1. **创建字符串对象** 在Java中,有多种方式来创建字符串对象,如通过`new`关键字、使用`String`字面量或者通过`StringBuffer/...
本篇文章将深入探讨PHP中的一些常用字符串处理方法和技术。 #### 二、PHP中的字符串变量 字符串变量用于存储文本数据。在PHP中定义字符串变量非常简单,只需使用等号(`=`)将其赋值即可。例如: ```php $txt = ...
本文将详细解析两种常用的C++ `std::string`截取字符串的方法:`find`和`find_last_of`,以及如何结合使用它们来满足各种字符串处理需求。 1. `find`方法: `find`方法用于在字符串中查找指定子字符串`strSub`的第...
本文将深入探讨几个常用的字符串处理函数,包括如何求取子字符串、进行字符串分割以及执行编码转换。这些功能在网页开发、数据处理和文本分析等场景下尤为关键。 #### 求子字符串 求子字符串通常涉及到两个主要的...
在VB(Visual Basic)编程中,处理字符串是常见的任务之一,其中包括将一个长字符串拆分成多个子字符串。这个过程通常称为“字符串拆分”或“分隔字符...通过实践和理解这些内容,你将在VB字符串处理方面变得更加熟练。
本资料主要汇总了VB中的常用字符串处理函数,适用于初学者学习和参考。 1. **Left()** 函数:返回字符串的左部指定长度的部分。例如,`Left("Hello World", 3)` 返回 "Hel"。 2. **Right()** 函数:与Left()相反,...
以下是一些C#中字符串处理的常用方法: 1. **计算字符串长度**: 使用`Length`属性可以获取字符串中的字符数量。例如: ```csharp string myString = "This is a test!"; Console.WriteLine("Text's length is ...
JAVA 中字符-字符串常用的方法 JAVA 中字符-字符串常用的方法是指在 Java 编程语言中处理字符和字符串的各种方法。...Java 中的字符-字符串常用方法为开发者提供了便捷的字符串处理方式,使得开发更加高效和方便。
几个字符串处理函数增强版 常用需求基本都能完成 已经编译成DLL 函数列表 兼容字符和串 void revstr char str 字符串反转 int substring char res int pos int len char substr 从pos开始取len个字符到substr中 ...
本文将深入探讨在Linux下C语言处理字符串的一些常见方法,包括去除字符串的左右空格、字符串的连接、提取子字符串、大小写转换、字符串与数字之间的相互转换以及字符串的反转。以下是对这些操作的详细讲解: 1. ...