截取字符串

  • 格式:doc
  • 大小:28.50 KB
  • 文档页数:3

package com.tgkj.ms.util;
/**
* 创建日期
* @作者
* 截取字符串转换
*/
/**
* 修改日期
* @修改人
* 修改误差
*/
public class StringSubStringBean {
public StringSubStringBean(){}
/**
* 截取字符串转换
* @param oldString 要截取的字符
* @param number 截取字符的个数(按汉字算)
* @return
*/
public String getSub(String oldString,int number){
String newString="";
if(oldString!=null){
/**
* 判断是否是中文
*/
if(oldString.matches("[\u4e00-\u9fa5]+$")){
/**
* 判断截取的长度是否超过要截取的长度
*/
if(oldString.length()>number){
newString=oldString.substring(0,number)+"..";
}else{
newString=oldString;
}
}else{
/**
* aa是oldString不是全中文,截取字符的长度
*/
int aa=number*2;
/**
* 判断是否是全英语或数字
*/
if(oldString.matches("[A-Za-z0-9_]+$")){
/**
* oldString的长度是否超过要截取的长度
*/
if(oldString.length()>aa){
newString=oldString.substring(0,aa)+"..";
}else{
newString=oldString;
}
}else{
/**
* oldString的长度是否超过要截取的长度
*/
if(oldString.length()>number){
if(oldString.length()>aa){
newString=oldString.substring(0,(number*2));
}else{
newString=oldString;
}
String a="";//过渡变量(oldString)
int l=0;//字符个数
int j=0;//长度位数
/**
* 循环每一个字符从中判断那个是中文
*/
for(int i=0;i<newString.length();i++){
a=newString.substring(i,(i+1));
/**
* 判断单个字符是否是中文
*/
if(a.getBytes().length>1){
l=l+2;
j++;
}else{
l++;
j++;
}
/**
* 判断字符个数达到要截取的长度
*/
if(l>=aa){
if(l>aa){
j=j-1;
}
break;
}
}
newString=oldString.substring(0,j)+"..";
}else{
newString=oldString;
}
}
}
}
return newString;
}
/*public static void main(String args[])
{
//String str="adfefdsafefdsafefdsafe";
String str="我明▼,◣○◣的在有要的地有地";
int num=5;
System.out.println(System.currentTimeMillis());
StringSubStringBean s=new StringSubStringBean();
System.out.println(s.getSub(str,num));
System.out.println(System.currentTimeMillis());
}*/
}。