栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java 一个截取字符串的函数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java 一个截取字符串的函数

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



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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/147575.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号