java 一个截取字符串的函数
程序员文章站
2024-03-05 21:30:01
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我abc”4,应该截为“我ab”,输入“我abc汉def”,6...
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我abc”4,应该截为“我ab”,输入“我abc汉def”,6,应该输出为“我abc”而不是“我abc+汉的半个”。
一、需要分析
1、输入为一个字符串和字节数,输出为按字节截取的字符串--------------》按照字节[byte]截取操作字符串,先将string转换成byte类型
2、汉字不可以截半----------------------------------------------------------------------------------------------------------》汉字截半的话对应字节的asc码为小于0的数值
二、技术难点
1、知道汉字截半的话对应字节的asc码为小于0的数值
2、对字符串操作应该都要面对的一个问题,字符串是否有效null, 字符串的长度0,1这种边界处理
代码实现:
package com.itheima; /** * 10、 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 * 但是要保证汉字不被截半个,如“我abc”4,应该截为“我ab”,输入“我abc汉def”,6,应该输出为“我abc”而不是“我abc+汉的半个”。 * * @author 281167413@qq.com */ public class test10 { public static void main(string[] args) { string srcstr1 = "我abc"; string srcstr2 = "我abc汉def"; splitstring(srcstr1, 4); splitstring(srcstr2, 6); } public static void splitstring(string src, int len) { int bytenum = 0; if (null == src) { system.out.println("the source string is null!"); return; } bytenum = src.length(); byte bt[] = src.getbytes(); // 将string转换成byte字节数组 if (len > bytenum) { len = bytenum; } // 判断是否出现了截半,截半的话字节对于的asc码是小于0的值 if (bt[len] < 0) { string substrx = new string(bt, 0, --len); system.out.println("substrx==" + substrx); } else { string substrx = new string(bt, 0, len); system.out.println("substrx==" + substrx); } } }
处理结果:
substrx==我ab substrx==我abc
上一篇: java多线程教程之如何使用线程池详解