java 一个截取字符串的函数

发布时间 - 2026-01-10 23:12:22    点击率:

编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我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截取字符串  # java 字符串截取的三种方法(推荐)  # java中如何截取字符串最后一位  # java 截取字符串(判断汉字)  # JAVA如何按字节截取字符串  # java中简单的截取分割字符串实例  # JAVA截取字符串的几种常用方法  # 半个  # 不被  # 转换成  # 而不是  # 都要  # 不可以  # 一个问题  # 先将  # 出现了  # 判断是否  # class  # brush  # null  # pre  # itheima  # java  # package  # ABC  # String  # byte 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在阿里云香港服务器快速搭建网站?  如何在腾讯云服务器快速搭建个人网站?  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  长沙企业网站制作哪家好,长沙水业集团官方网站?  高防服务器:AI智能防御DDoS攻击与数据安全保障  中山网站制作网页,中山新生登记系统登记流程?  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  如何快速搭建支持数据库操作的智能建站平台?  如何彻底删除建站之星生成的Banner?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  如何选择PHP开源工具快速搭建网站?  制作企业网站建设方案,怎样建设一个公司网站?  Python结构化数据采集_字段抽取解析【教程】  如何在建站之星网店版论坛获取技术支持?  如何自定义建站之星网站的导航菜单样式?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  Laravel如何实现用户注册和登录?(Auth脚手架指南)  韩国服务器如何优化跨境访问实现高效连接?  Laravel怎么实现验证码(Captcha)功能  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  如何快速使用云服务器搭建个人网站?  Android 常见的图片加载框架详细介绍  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  音乐网站服务器如何优化API响应速度?  LinuxShell函数封装方法_脚本复用设计思路【教程】  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  Java类加载基本过程详细介绍  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  香港服务器部署网站为何提示未备案?  如何续费美橙建站之星域名及服务?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  如何挑选高效建站主机与优质域名?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  深圳网站制作的公司有哪些,dido官方网站?  如何快速搭建高效服务器建站系统?  网站页面设计需要考虑到这些问题  如何生成腾讯云建站专用兑换码?  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  Android自定义控件实现温度旋转按钮效果  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel如何使用Service Container和依赖注入?(代码示例)  教你用AI将一段旋律扩展成一首完整的曲子  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)