截取字符串的代码实现

编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是保证汉子不被截半个,例如输入“人ABC” 4,应该截为“人AB”;输入“人ABC们DEF” 6,应该输出为“人ABC”,而不是“人ABC+半个们”。

分析:在String中英文占1个字节,中文占2个字节

 1 public class TruncateStr {
 2     private boolean isChinese(char cc){
 3         String str = String.valueOf(cc);  // 将字符转换成字符串
 4         return str.getBytes().length > 1;  // 将字符串转变为字节数组
 5     }
 6     private String truncateStr(String str, int len){
 7         if (str == null || str.equals("") || len == 0){
 8             return "";
 9         }
10         char [] charArr = str.toCharArray();  // 将字符串装换成字符数组
11         StringBuilder sb = new StringBuilder();
12         int count = 0;
13         for (char cc : charArr){  // 遍历字符数组
14             if (count < len){
15                 if (isChinese(cc)){
16                     if (count + 2 <= len){
17                         sb.append(cc);
18                         count += 2;
19                     }else {
20                         return sb.toString();
21                     }
22                 }else{
23                     sb.append(cc);
24                     count++;
25                 }
26             } else {
27                 break;
28             }
29         }
30         return sb.toString();
31     }
32     public static void main(String[] args){
33         TruncateStr ts = new TruncateStr();
34         System.out.println(ts.truncateStr("人ABC们DEF", 6));
35     }
36 }

原文地址:https://www.cnblogs.com/0820LL/p/9672124.html

时间: 2024-10-10 06:33:36

截取字符串的代码实现的相关文章

字符串操作 - 截取字符串长度代码段

提供一些项目中常用的字符串操作功能包括:截取字符串长度.输出转换.随机字符串.全角半角转换.字符集转换.邮箱格式验证.数字转文件大小. 截取字符串长度代码段: <span style="font-family:SimSun;font-size:12px;">/** * 截取长度 * @param unknown $str * @param number $start * @param unknown $length * @param string $charset * @p

CSS3截取字符串实例代码

截取字符串一般是用js或者后台语言来实现,其实使用CSS也是可以实现此效果的. 代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>CSS教程-蚂蚁部落</title>

js如何截取字符串右边指定长度的字符

js如何截取字符串右边指定长度的字符:通常情况下都从字符串的左边开始截取字符串,下面介绍一下如何从字符串的右边截取字符串.代码如下: String.prototype.right=function(length_) { var _from=this.length-length_; if(_from<0) _from=0; return this.substring(this.length - length_,this.length); } var str="antzone"; c

ASP如何计算中英文混合字符串长度和截取字符串

用ASP做网站的时候经常会碰到要截取字符串的情况.ASP中的Len函数不管是中文字符,还是英文字符,统统按一个单位来计算,由于一个中文字符的宽度是一个英文字符宽度的两倍,在中英文混合的情况下字符串实际占用的宽度就不好计算了,如果按照Len函数计算的长度来截取字符串截出来的效果也会长短不一,下面是按照一个汉字相当于两个英文字符来计算字符串长度和截取字符串的代码 计算中英文混合字符串的长度: [vb] view plaincopyprint? function getStringLen(str) o

Java中根据字节截取字符串

一.简介 为了统一世界各国的字符集,流行开了Unicode字符集,java也支持Unicode编码,即java中char存的是代码点值,即无论是'A'还是'中'都占两个字节. 代码点值:与Unicode编码表中字符相对应的代码值: 代码单元:就是java中的一个char,可一个以认为是字符编码的基本单元 二.根据字节截取字符串的代码实现 public String getSubString(String str, int length) throws Exception { int i; int

截取指定长度字符串长度代码实例

截取指定长度字符串长度代码实例:字符串的长度在默认状态下往往不能够满足需求,比如新闻列表新闻标题的长度,如果过长往往会引起换行,影响美观度,进而一项用户体验,所以需要根据需要截取字符串长度,下面就分享两端能够实现此功能的代码,希望对大家有所帮助.代码示例如下:一.CSS方式:html代码: <div class="cutText">蚂蚁部落欢迎您,只有奋斗才会有美好的明天!</div> CSS代码: .cutText{ width:150px; height:2

文章生成器,Split方法截取字符串。从硬盘读取文件,和向硬盘存储文件参考代码

string x, y; private void button2_Click(object sender, EventArgs e) { textBox2.Clear(); if (button4.Enabled == false) { string[] shuzu = y.Split(new char[]{'.'}); //用split方法截取字符串 string news = ""; // 将截取字符串后的语句打乱顺序 for (int i = 0; i < shuzu.L

面试题之java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况

题目:10. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串. 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”. 一.需要分析 1.输入为一个字符串和字节数,输出为按字节截取的字符串-------------->按照字节[byte]截取操作字符串,先将String转换成byte类型 .2.汉字不可以截半----------------------------------

Java机试题目_怎样截取字符串

面试题1  怎样截取字符串 考题题干 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串.但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF"6,应该输出"我ABC",而不是"我ABC+汉的半个". 试题分析 本面试题容易产生困惑的是中文字符和英文字符,在这里需要考虑汉字和英文字符的占用字节数问题,中文字符占两个字节,英文字符占一个字节,理解了这