题目要求:

写一个函数,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 个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码相关推荐

  1. 自动化测试(三)如何用python写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复。...

    写一个函数,这个函数的功能是,传入一个数字,产生N条邮箱,产生的邮箱不能重复.邮箱前面的长度是6-12之间,产生的邮箱必须包含大写字母.小写字母.数字和特殊字符 和上一期一样 代码中间有段比较混沌 有 ...

  2. 写一个函数,输入int型,返回整数逆序后的字符串

    2019独角兽企业重金招聘Python工程师标准>>> 刚刚看到一个面试题:写一个函数,输入int型,返回整数逆序后的字符串.如:输入123,返回"321". 要 ...

  3. 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。

    题目描述 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换. 输入 一个3x3的矩阵 输出 无 样例输入 1 2 3 4 5 6 7 8 9 样例输出 1 4 7 2 5 8 3 6 9 # ...

  4. 写一个方法判断一个整数是否为质数_请写一个函数来检查用户提交的数据是否为整数...

    请写一个函数来检查用户提交的数据是否为整数(不区分数据类型,可以为二进制.八进制.十进制.十六进制数字) 1.is_integer 是 is_int() 的别名,是一样的 2.is_int/is_in ...

  5. sql integer字置为空_请写一个函数来检查用户提交的数据是否为整数

    请写一个函数来检查用户提交的数据是否为整数(不区分数据类型,可以为二进制.八进制.十进制.十六进制数字) 1.is_integer 是 is_int() 的别名,是一样的 2.is_int/is_in ...

  6. 下面属于python内置对象的有哪些_python练习题-写一个函数,打印所有包含copy方法的内置对象...

    代码: #encoding=utf-8 for i in dir(__builtins__): #print "i:",i try: #这里的i是个字符串,并不能直接用dir(i) ...

  7. c语言有参有类最小公倍数,【C语言】写一个函数,并调用该函数求两个整数的最大公约数和最小公倍数...

    程序分析: 在数学中,两个数的最小公倍数=两个数的乘积/两数的最大公约数. 求两个数的最大公约数,运用辗转相除法:已知两个整数M和N,假定M>N,则求M%N. 如果余数为0,则N即为所求:如果余 ...

  8. 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 ...

  9. C语言---写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串

    题目: 写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串. #include <string.h> #include <stdio.h> void left_re ...

最新文章

  1. 论文:基于粒子群优化的测试数据生成及其实证分析-----生成过程以及实验(计算机研究与发展)
  2. laravel-admin集成ueditor编辑器的图片列表显示问题解决方法
  3. 解压Ubuntu的initrd.img的方法
  4. 伽卡他卡电子教室 百度百科_怎么创建人物百度百科?人物百度百科创作技巧...
  5. 骑手困在系统里,网友困在回应里,而王兴正在刷饭否
  6. python对象继承
  7. Spring.NET学习笔记12——面向切面编程(基础篇) Level 300
  8. Java中注释的使用
  9. favicon图标制作
  10. git rebase 变基
  11. MySQL SQL Error: 1064, SQLState: 42000 错误
  12. java 提交界面_使用javascript如何实现页面加载时自动提交表单
  13. jdbc编程遇到文件上传
  14. 每日站会怎么开才好?——你的站会姿势正确吗?
  15. Linux安装vim编辑器
  16. USB转485/232
  17. Web 通信 之 长连接、长轮询
  18. 免费pdf转word网页版
  19. 【计算机科学速成课】[40集全/文字版] - 17.集成电路摩尔定律
  20. A problem occurred configuring root project ‘xxx‘.

热门文章

  1. 华为鸿蒙新概念机,华为P50概念机确认,麒麟芯片+鸿蒙系统,这才是真旗舰!...
  2. php正则过滤html标签_空格_换行符的代码,php正则过滤html标签、空格、换行符的代码(附说明)_php技巧...
  3. ubuntu windows 终端清理、清空 屏幕命令 清屏
  4. 改变jupyter notebook的主题背景颜色
  5. 人群密度估计--CSRNet: Dilated Convolutional Neural Networks for Understanding the Highly Congested Scenes
  6. 车辆2D/3D--Deep MANTA: A Coarse-to-fine Many-Task Network for joint 2D and 3D vehicle analysis
  7. java随机产生100个大小写字母_Java生成固定长度的随机字符串(以大小写字母和数字)...
  8. 搬运机器人举杯贺所需的条件_机器人调试工程师的工作是怎样的
  9. android 集合 内存泄漏,Android内存泄漏第二课--------(集合中对象没清理造成的内存泄漏 )...
  10. mysql悲观锁和乐观锁