java截取中文_按字节截取混有中文汉字的字符串 中英文字符串截取
[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截取中文_按字节截取混有中文汉字的字符串 中英文字符串截取相关推荐
- python可以使用中文_如何在Python中使用中文
Xc.Li Feb.2016 本文用一个程序解释了如何在python2.7和pycharm中使用中文进行显示,中文作为判断参数,中文作为正则表达式的参数等涉及中文的代码问题. 系统环境:Python2 ...
- mysql 自后向前截取函数_【转载】Sqlserver使用Right函数从最右边向前截取固定长度字符串...
在SQL语句查询过程中,Sqlserver支持使用LEFT().RIGHT().SUBSTRING()等几个函数对字符串进行截取操作,其中Left函数表示从开始字符向后截取多少个字符,Right函数表 ...
- java 面向对象多态_乐字节Java面向对象三大特性以及Java多态
以上就是本次学习的6大任务.我们依次来看. 1 Object类 Object类是所有Java类的根基类. 如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类. cla ...
- java数青蛙_『字节跳动LeetCode联合周赛』--周赛185(JavaScript) | OFEII
前言
- php 字符串中英文混合截取,PHP截取中英混合的字符串
今天在遇到了一个中英字符串截取的问题,在gbk里中文里每个字占两字节,如果全是中文的话,用substr()函数就可以实现了,但中英都有的话就麻烦了,在以前收藏的代码里找到了一个不错的函数,很好的实现了 ...
- mysql 中文 3个字节_mysql里一个中文汉字占多少字节数?
在mysql中,如果是latin1字符集下,一个中文汉字占2个字节数:如果是utf8字符集下,一个中文汉字占3个字节数:如果是gbk字符集下,一个中文汉字占2个字节数. (推荐教程:mysql视频教程 ...
- latex 中文_【小白向】LaTeX 中文入门
注:本文尚未撰写完毕,先暂存一下~(2020/06/27) 参考学习路线[1] 如何从零开始,入门 LaTeX? @孟晨 1. 卸载 CTeX 套装,安装 TeX Live 原因及教程见:TeX Li ...
- python画图显示不了中文_完美解决Python matplotlib绘图时汉字显示不正常的问题
Matplotlib是一个很好的作图软件,但是python下默认不支持中文,所以需要做一些修改,方法如下: 1.在python安装目录的Lib目录下创建ch.py文件. 文件中代码为: 保存,以后通过 ...
- python3读文件中文_详解Python3解决读取中文文件txt编码的问题
import jieba import jieba.analyse from matplotlib import pyplot as plt from scipy.misc import imread ...
最新文章
- 利用反射实现类的动态加载
- how to fix error 25007 : loadlibraryshim()
- java自带的xml解析_Java自带的XML解析
- Jenkins 流水线 获取git 分支列表_使用Jenkins Git参数实现分支标签动态选择
- 3 ie兼容 vue_前端开发:MVVM框架之Vue势必会取代JQuery吗?
- 什么是 Visual VM?
- 3.1 SVM原理入门
- T-SQL备忘(6):常用内置函数
- 软件开发如同木匠做桌子
- eclipse手动pom本地包_(转)如何在maven的pom.xml中添加本地jar包
- SpringBoot整合(Elasticserch)
- 抖音品质建设 - iOS启动优化《原理篇》
- 知识变现 常用课程制作实用工具大全(建议保存)
- 如何批量将 Excel 文档转为 Txt 文本格式
- 计算机网络实验——华为eNSP模拟器常用命令总结(总结的非常详细( •̀ .̫ •́ )✧快来看啊)
- 毕向东java基础,B站直达,目录,b站浏览目录太难受,在这做一个
- cs服务器搭建(cobaltstrike)
- 计算机三年级到六年级知识点,小学三年级至六年级信息技术教学总结
- FESCO数字一体化建设项目简介
- 最新版 IDEA 2022.1 正式上线 各种新操作...新功能...都在这里啦