改进后的汉字截取处理程序(含测试用例)
2017-04-06 15:56
204 查看
java 代码
package org.danlley.util;
public class StringTools{
/**
* 说明:如果需要截取的长度大于字符串实际可以被截取的长度,则按实际可截取长度进行截取,
* 此时不用考虑汉字问题。如果要截取的长度在实际可截取长度的许可范围内,则需要考虑
* 汉字的问题。具体做法是,先把字符串转换成字符数组,然后对每个字符进行判断,如果
* 字符所占用的长度是“2”的整数倍,则认为这个字属于非英文字符。
* @param str 待处理字符串
* @param index 处理的首位置
* @param length 长度
* @return
* @throws java.lang.Exception
*/
public String subString(String str,int index,int length) throws Exception{
try{
String returnStr=null;
byte[] bytes=str.getBytes();
int len=bytes.length;
boolean lenFlow=((len-index)>length)?(true):(false);
if(lenFlow){
String tmpStr;
StringBuffer tmpBfStr=new StringBuffer();
int curlen=0;
int j=0;
while(j<length){
char mychar=str.charAt(j);
tmpStr=String.valueOf(mychar);
if(tmpStr.getBytes().length%2==0){
j+=2;
if(j>length){
break;
}
}else{
j++;
}
tmpBfStr.append(tmpStr);
}
returnStr=tmpBfStr.toString();
}else{
returnStr=str.substring(index,str.length());
}
return returnStr;
} catch(Exception e){
e.printStackTrace();
e.getMessage();
throw new Exception(e);
}
}
public static void main(String[] args) throws Exception{
try{
String message="test中dd文dsaf中男大3443n中国43中国人";
StringTools stringTools=new StringTools();
String str=stringTools.subString(message,0,5);
System.out.println(str);
} catch(Exception ex){
ex.printStackTrace();
throw new Exception(ex);
}
}
}
package org.danlley.util;
public class StringTools{
/**
* 说明:如果需要截取的长度大于字符串实际可以被截取的长度,则按实际可截取长度进行截取,
* 此时不用考虑汉字问题。如果要截取的长度在实际可截取长度的许可范围内,则需要考虑
* 汉字的问题。具体做法是,先把字符串转换成字符数组,然后对每个字符进行判断,如果
* 字符所占用的长度是“2”的整数倍,则认为这个字属于非英文字符。
* @param str 待处理字符串
* @param index 处理的首位置
* @param length 长度
* @return
* @throws java.lang.Exception
*/
public String subString(String str,int index,int length) throws Exception{
try{
String returnStr=null;
byte[] bytes=str.getBytes();
int len=bytes.length;
boolean lenFlow=((len-index)>length)?(true):(false);
if(lenFlow){
String tmpStr;
StringBuffer tmpBfStr=new StringBuffer();
int curlen=0;
int j=0;
while(j<length){
char mychar=str.charAt(j);
tmpStr=String.valueOf(mychar);
if(tmpStr.getBytes().length%2==0){
j+=2;
if(j>length){
break;
}
}else{
j++;
}
tmpBfStr.append(tmpStr);
}
returnStr=tmpBfStr.toString();
}else{
returnStr=str.substring(index,str.length());
}
return returnStr;
} catch(Exception e){
e.printStackTrace();
e.getMessage();
throw new Exception(e);
}
}
public static void main(String[] args) throws Exception{
try{
String message="test中dd文dsaf中男大3443n中国43中国人";
StringTools stringTools=new StringTools();
String str=stringTools.subString(message,0,5);
System.out.println(str);
} catch(Exception ex){
ex.printStackTrace();
throw new Exception(ex);
}
}
}
相关文章推荐
- 使用Eclipse性能测试插件TPTP改进你的程序(一)
- 在C程序中处理汉字
- 在C程序中处理汉字
- 基于XML和Python实现白盒测试程序与测试用例分离
- mmap--最简单的测试程序(用户空间与内核空间数据交换&&用户态和内核态的数据交换用例)
- 一个测试,一个用程序处理一个用存储过程
- PHP中处理截取汉字,出现乱码问题的2个类
- 使用组合改进软件测试用例的生成
- PHP中处理截取汉字,出现乱码问题的2个类
- Java程序的单元测试-分析并获取测试用例
- 使用组合改进软件测试用例的生成
- 话单采集测试(第一次更新修正用例部分,更新了程序Bug追加了一些功能)
- Delphi 处理在字符串截取中避免出现半个汉字
- 控制台参数处理berkeley db测试小程序
- 使用组合改进软件测试用例的生成2
- 话单采集测试(第一次更新修正用例部分,更新了程序Bug追加了一些功能)
- 使用组合改进软件测试用例的生成4
- 话单采集测试(第一次更新修正用例部分,更新了程序Bug追加了一些功能)
- 从方案到用例再谈测试覆盖——改进决定成败
- Java简单图形编辑器 放置、移动和擦除方块 鼠标事件测试程序 Java核心技术 事件处理