编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
一、需要分析
1、输入为一个字符串和字节数,输出为按字节截取的字符串--------------》按照字节[byte]截取操作字符串,先将String转换成byte类型
2、汉字不可以截半----------------------------------------------------------------------------------------------------------》汉字截半的话对应字节的ASC码为小于0的数值
二、技术难点
1、知道汉字截半的话对应字节的ASC码为小于0的数值
2、对字符串操作应该都要面对的一个问题,字符串是否有效null, 字符串的长度0,1这种边界处理
代码实现:
代码如下 | 复制代码 |
packagecom.itheima;
/** * 10、 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 * 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 * * @author [email protected] */
publicclassTest10 {
publicstaticvoidmain(String[] args) { String srcStr1 ="我ABC"; String srcStr2 ="我ABC汉DEF";
splitString(srcStr1,4); splitString(srcStr2,6); }
publicstaticvoidsplitString(String src,intlen) { intbyteNum =0;
if(null== src) { System.out.println("The source String is null!"); return; }
byteNum = src.length(); bytebt[] = src.getBytes();// 将String转换成byte字节数组
if(len > byteNum) { len = byteNum; }
// 判断是否出现了截半,截半的话字节对于的ASC码是小于0的值 if(bt[len]<0) { String subStrx =newString(bt,0, --len); System.out.println("subStrx=="+ subStrx); }else{ String subStrx =newString(bt,0, len); System.out.println("subStrx=="+ subStrx); } }
} |
处理结果:
subStrx==我AB subStrx==我ABC |
忍者必须死34399账号登录版 最新版v1.0.138v2.0.72
下载勇者秘境oppo版 安卓版v1.0.5
下载忍者必须死3一加版 最新版v1.0.138v2.0.72
下载绝世仙王官方正版 最新安卓版v1.0.49
下载Goat Simulator 3手机版 安卓版v1.0.8.2
Goat Simulator 3手机版是一个非常有趣的模拟游
Goat Simulator 3国际服 安卓版v1.0.8.2
Goat Simulator 3国际版是一个非常有趣的山羊模
烟花燃放模拟器中文版 2025最新版v1.0
烟花燃放模拟器是款仿真的烟花绽放模拟器类型单机小游戏,全方位
我的世界动漫世界 手机版v友y整合
我的世界动漫世界模组整合包是一款加入了动漫元素的素材整合包,
我的世界贝爷生存整合包 最新版v隔壁老王
我的世界MITE贝爷生存整合包是一款根据原版MC制作的魔改整