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; } /** *
切割字符串,用字符切割,并从指定位置开始 *
@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 ); } /** *
用字符串切割字符串 *
@param String c, 用来切割的字符串 *
@param String[], 切割成的字符串 */ public String[]
split(String c) { System.out.println( "分隔符:
" +
c ); if (strin
== null ) { return null ; } 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); } /** *
把一个字符转化成二进制的 *
@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(); } /** *
判断一个字符是Ascill字符还是其它字符(如汉,日,韩文字符) *
@param char c, 需要判断的字符 *
@return boolean, 返回true,Ascill字符 */ public static boolean isLetter( char c)
{ int k
= 0x80 ; return c/k
== 0 ? true : false ; } /** *
得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为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; } /** *
从开始位置获取len个字符位的字符串,不区分中英文 *
@param String origin, 原始字符串 *
@param int len, 切割的长度(一个汉字长度按2算的) *
@return String, 切割后的字符串 */ public static String
substring(String origin, int len)
{ return substring(origin, 0 ,
len); } /** *
截取一段字符的长度,不区分中英文,如果数字不正好,则多取一个字符位 *
@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 "" ; } 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 ; sb.append(c[j]); if (!isLetter(c[j])) { i++; } } return sb.toString(); } public String
toString() { return strin; } /** *
把一个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( "<br>" ); break ; default : sb.append(c[i]); } } return sb.toString(); } }
|
Java字符串的处理常用方法
最新推荐文章于 2024-06-23 14:00:00 发布