[java]代码库import java.io.UnsupportedEncodingException;

public class CutString {

/**

* 判断是否是一个中文汉字

*

* @param c

* 字符

* @return true表示是中文汉字,false表示是英文字母

* @throws UnsupportedEncodingException

* 使用了JAVA不支持的编码格式

*/

public static boolean isChineseChar(char c)

throws UnsupportedEncodingException {

// 如果字节数大于1,是汉字

// 以这种方式区别英文字母和中文汉字并不是十分严谨,但在这个题目中,这样判断已经足够了

return String.valueOf(c).getBytes("GBK").length > 1;

}

/**

* 按字节截取字符串

*

* @param orignal

* 原始字符串

* @param count

* 截取位数

* @return 截取后的字符串

* @throws UnsupportedEncodingException

* 使用了JAVA不支持的编码格式

*/

public static String substring(String orignal, int count)

throws UnsupportedEncodingException {

// 原始字符不为null,也不是空字符串

if (orignal != null && !"".equals(orignal)) {

// 将原始字符串转换为GBK编码格式

orignal = new String(orignal.getBytes(), "GBK");

// 要截取的字节数大于0,且小于原始字符串的字节数

if (count > 0 && count < orignal.getBytes("GBK").length) {

StringBuffer buff = new StringBuffer();

char c;

for (int i = 0; i < count; i++) {

// charAt(int index)也是按照字符来分解字符串的

c = orignal.charAt(i);

buff.append(c);

if (CutString.isChineseChar(c)) {

// 遇到中文汉字,截取字节总数减1

--count;

}

}

return buff.toString();

}

}

return orignal;

}

public static void main(String[] args) {

// 原始字符串

String s = "我ZWR爱JAVA";

System.out.println("原始字符串:" + s);

try {

System.out.println("截取前1位:" + CutString.substring(s, 1));

System.out.println("截取前2位:" + CutString.substring(s, 2));

System.out.println("截取前4位:" + CutString.substring(s, 4));

System.out.println("截取前6位:" + CutString.substring(s, 6));

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

}

}

java截取中文_按字节截取混有中文汉字的字符串 中英文字符串截取相关推荐

  1. python可以使用中文_如何在Python中使用中文

    Xc.Li Feb.2016 本文用一个程序解释了如何在python2.7和pycharm中使用中文进行显示,中文作为判断参数,中文作为正则表达式的参数等涉及中文的代码问题. 系统环境:Python2 ...

  2. mysql 自后向前截取函数_【转载】Sqlserver使用Right函数从最右边向前截取固定长度字符串...

    在SQL语句查询过程中,Sqlserver支持使用LEFT().RIGHT().SUBSTRING()等几个函数对字符串进行截取操作,其中Left函数表示从开始字符向后截取多少个字符,Right函数表 ...

  3. java 面向对象多态_乐字节Java面向对象三大特性以及Java多态

    ​ 以上就是本次学习的6大任务.我们依次来看. 1 Object类 Object类是所有Java类的根基类. 如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类. cla ...

  4. java数青蛙_『字节跳动LeetCode联合周赛』--周赛185(JavaScript) | OFEII

    前言

  5. php 字符串中英文混合截取,PHP截取中英混合的字符串

    今天在遇到了一个中英字符串截取的问题,在gbk里中文里每个字占两字节,如果全是中文的话,用substr()函数就可以实现了,但中英都有的话就麻烦了,在以前收藏的代码里找到了一个不错的函数,很好的实现了 ...

  6. mysql 中文 3个字节_mysql里一个中文汉字占多少字节数?

    在mysql中,如果是latin1字符集下,一个中文汉字占2个字节数:如果是utf8字符集下,一个中文汉字占3个字节数:如果是gbk字符集下,一个中文汉字占2个字节数. (推荐教程:mysql视频教程 ...

  7. latex 中文_【小白向】LaTeX 中文入门

    注:本文尚未撰写完毕,先暂存一下~(2020/06/27) 参考学习路线[1] 如何从零开始,入门 LaTeX? @孟晨 1. 卸载 CTeX 套装,安装 TeX Live 原因及教程见:TeX Li ...

  8. python画图显示不了中文_完美解决Python matplotlib绘图时汉字显示不正常的问题

    Matplotlib是一个很好的作图软件,但是python下默认不支持中文,所以需要做一些修改,方法如下: 1.在python安装目录的Lib目录下创建ch.py文件. 文件中代码为: 保存,以后通过 ...

  9. python3读文件中文_详解Python3解决读取中文文件txt编码的问题

    import jieba import jieba.analyse from matplotlib import pyplot as plt from scipy.misc import imread ...

最新文章

  1. 利用反射实现类的动态加载
  2. how to fix error 25007 : loadlibraryshim()
  3. java自带的xml解析_Java自带的XML解析
  4. Jenkins 流水线 获取git 分支列表_使用Jenkins Git参数实现分支标签动态选择
  5. 3 ie兼容 vue_前端开发:MVVM框架之Vue势必会取代JQuery吗?
  6. 什么是 Visual VM?
  7. 3.1 SVM原理入门
  8. T-SQL备忘(6):常用内置函数
  9. 软件开发如同木匠做桌子
  10. eclipse手动pom本地包_(转)如何在maven的pom.xml中添加本地jar包
  11. SpringBoot整合(Elasticserch)
  12. 抖音品质建设 - iOS启动优化《原理篇》
  13. 知识变现 常用课程制作实用工具大全(建议保存)
  14. 如何批量将 Excel 文档转为 Txt 文本格式
  15. 计算机网络实验——华为eNSP模拟器常用命令总结(总结的非常详细( •̀ .̫ •́ )✧快来看啊)
  16. 毕向东java基础,B站直达,目录,b站浏览目录太难受,在这做一个
  17. cs服务器搭建(cobaltstrike)
  18. 计算机三年级到六年级知识点,小学三年级至六年级信息技术教学总结
  19. FESCO数字一体化建设项目简介
  20. 最新版 IDEA 2022.1 正式上线 各种新操作...新功能...都在这里啦

热门文章

  1. 趣头条基于ClickHouse玩转每天1000亿数据量
  2. Python游戏引擎开发(六):动画的小小研究
  3. ubuntu下编译安装PHP扩展
  4. ANSYS有限元仿真分析:大变形(Large Dflection)开关的意义
  5. 简要聊聊我对大小公司的主观感受
  6. dio设置自定义post请求_使用Dio封装ajax的post和get操作
  7. 西门子s7 200smart与台达DTA温控modbus通讯
  8. 刷爆朋友圈的 Google AI 小程序,成功把一条线认成了天鹅
  9. java照片切换播放音乐_怎么将照片制作成视频并添加音乐呢
  10. 如何使用python快速读取tsv文件