写一个函数,2 个参数,1 个字符串,1 个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码
题目要求:
写一个函数,2 个参数,1 个字符串,1 个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码。
如(“我ABC”,4)应该截为“我AB”,
输入(“我ABC 汉DEF”,6)应该输出为“我ABC”而不是“我ABC+汉的半个”。
public String subString(String str, int subBytes) {int bytes = 0; // 用来存储字符串的总字节数for (int i = 0; i < str.length(); i++) {// 计算后的bytes与字节数相等,截取是的index正好是对应的下标iif (bytes == subBytes) {return str.substring(0, i);}
// 返回对应index的char值char c = str.charAt(i);if (c < 256) {bytes += 1; // 英文字符的字节数看作1} else {bytes += 2; // 中文字符的字节数看作2// 当要截取的最后一个是中文时,+2会超过要截取的字节数,上面的判断条件会不满足,要满足不能出现乱码,多要丢掉// 此时直接截取/*** 假如为 "我A汉BC汉DEF" 截取字符为4,4是字节数(假如英文占1个字节,中文占2个字节)* 第一轮循环:为中文,i=0,bytes=2* 第二轮:为英文,i=1,bytes=1* 第三轮时:情况特殊,此时是中文bytes=5,如果不加判断条件,会进入4个循环,bytes==subBytes【5!=4】此时就不会结束了* 如果这个时候是英文,刚好4==4* 所有加一个bytes - subBytes == 1条件就可以判断* ヾ(◍°∇°◍)ノ゙*/if(bytes - subBytes == 1){return str.substring(0, i);}}}return str;}@Testpublic void Test6(){// String def1 = subString("我ABC 汉DEF", 8);String def2 = subString("我A汉BC汉DEF", 4);
// System.out.println(def1);System.out.println(def2);}
结果
写一个函数,2 个参数,1 个字符串,1 个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码相关推荐
- 自动化测试(三)如何用python写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复。...
写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复.邮箱前面的长度是6-12之间,产生的邮箱必须包含大写字母.小写字母.数字和特殊字符 和上一期一样 代码中间有段比较混沌 有 ...
- 写一个函数,输入int型,返回整数逆序后的字符串
2019独角兽企业重金招聘Python工程师标准>>> 刚刚看到一个面试题:写一个函数,输入int型,返回整数逆序后的字符串.如:输入123,返回"321". 要 ...
- 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。
题目描述 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换. 输入 一个3x3的矩阵 输出 无 样例输入 1 2 3 4 5 6 7 8 9 样例输出 1 4 7 2 5 8 3 6 9 # ...
- 写一个方法判断一个整数是否为质数_请写一个函数来检查用户提交的数据是否为整数...
请写一个函数来检查用户提交的数据是否为整数(不区分数据类型,可以为二进制.八进制.十进制.十六进制数字) 1.is_integer 是 is_int() 的别名,是一样的 2.is_int/is_in ...
- sql integer字置为空_请写一个函数来检查用户提交的数据是否为整数
请写一个函数来检查用户提交的数据是否为整数(不区分数据类型,可以为二进制.八进制.十进制.十六进制数字) 1.is_integer 是 is_int() 的别名,是一样的 2.is_int/is_in ...
- 下面属于python内置对象的有哪些_python练习题-写一个函数,打印所有包含copy方法的内置对象...
代码: #encoding=utf-8 for i in dir(__builtins__): #print "i:",i try: #这里的i是个字符串,并不能直接用dir(i) ...
- c语言有参有类最小公倍数,【C语言】写一个函数,并调用该函数求两个整数的最大公约数和最小公倍数...
程序分析: 在数学中,两个数的最小公倍数=两个数的乘积/两数的最大公约数. 求两个数的最大公约数,运用辗转相除法:已知两个整数M和N,假定M>N,则求M%N. 如果余数为0,则N即为所求:如果余 ...
- ACMNO.24 C语言-转置矩阵 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。 输入 一个3x3的矩阵 输出 转置后的矩阵 样例
题目描述 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换. 输入 一个3x3的矩阵 输出 转置后的矩阵 样例输入 1 2 3 4 5 6 7 8 9 样例输出 1 4 7 2 5 8 3 ...
- C语言---写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串
题目: 写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串. #include <string.h> #include <stdio.h> void left_re ...
最新文章
- 论文:基于粒子群优化的测试数据生成及其实证分析-----生成过程以及实验(计算机研究与发展)
- laravel-admin集成ueditor编辑器的图片列表显示问题解决方法
- 解压Ubuntu的initrd.img的方法
- 伽卡他卡电子教室 百度百科_怎么创建人物百度百科?人物百度百科创作技巧...
- 骑手困在系统里,网友困在回应里,而王兴正在刷饭否
- python对象继承
- Spring.NET学习笔记12——面向切面编程(基础篇) Level 300
- Java中注释的使用
- favicon图标制作
- git rebase 变基
- MySQL SQL Error: 1064, SQLState: 42000 错误
- java 提交界面_使用javascript如何实现页面加载时自动提交表单
- jdbc编程遇到文件上传
- 每日站会怎么开才好?——你的站会姿势正确吗?
- Linux安装vim编辑器
- USB转485/232
- Web 通信 之 长连接、长轮询
- 免费pdf转word网页版
- 【计算机科学速成课】[40集全/文字版] - 17.集成电路摩尔定律
- A problem occurred configuring root project ‘xxx‘.
热门文章
- 华为鸿蒙新概念机,华为P50概念机确认,麒麟芯片+鸿蒙系统,这才是真旗舰!...
- php正则过滤html标签_空格_换行符的代码,php正则过滤html标签、空格、换行符的代码(附说明)_php技巧...
- ubuntu windows 终端清理、清空 屏幕命令 清屏
- 改变jupyter notebook的主题背景颜色
- 人群密度估计--CSRNet: Dilated Convolutional Neural Networks for Understanding the Highly Congested Scenes
- 车辆2D/3D--Deep MANTA: A Coarse-to-fine Many-Task Network for joint 2D and 3D vehicle analysis
- java随机产生100个大小写字母_Java生成固定长度的随机字符串(以大小写字母和数字)...
- 搬运机器人举杯贺所需的条件_机器人调试工程师的工作是怎样的
- android 集合 内存泄漏,Android内存泄漏第二课--------(集合中对象没清理造成的内存泄漏 )...
- mysql悲观锁和乐观锁