当前位置: 移动技术网 > IT编程>开发语言>Java > java 一个截取字符串的函数

java 一个截取字符串的函数

2019年07月22日  | 移动技术网IT编程  | 我要评论

编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网