`
xiang588
  • 浏览: 313587 次
  • 性别: Icon_minigender_1
  • 来自: 甘肃平凉
社区版块
存档分类
最新评论

Java精确截取字符串

阅读更多

开发中经常遇到,字符串过长,无法完全显示的问题

这时候就需要截取我们所需要的长度,后面显示省略号或其他字符。

由于中文字符占两个字节,而英文字符占用一个字节,所以,单纯地判断字符数,效果往往不尽如人意

下面的方法通过判断字符的类型来进行截取,效果还算可以:)


如果大家有其他的解决方法欢迎贴出来,共同学习:)

private String str;
private int counterOfDoubleByte;
private byte b[];
/** *//**
* 设置需要被限制长度的字符串
@param str 需要被限制长度的字符串
*/

public void setLimitLengthString(String str)...{
  
this.str = str;
}

/** *//**
@param len 需要显示的长度(<font color="red">注意:长度是以byte为单位的,一个汉字是2个byte</font>)
@param symbol 用于表示省略的信息的字符,如“...”,“>>>”等。
@return 返回处理后的字符串
*/

public String getLimitLengthString(int len, String symbol) throws UnsupportedEncodingException ...{
  counterOfDoubleByte 
= 0;
  b 
= str.getBytes("GBK");
  
if(b.length <= len)
    
return str;
  
for(int i = 0; i < len; i++)...{
    
if(b[i] < 0)
      counterOfDoubleByte
++;
  }


  
if(counterOfDoubleByte % 2 == 0)
    
return new String(b, 0, len, "GBK"+ symbol;
  
else
    
return new String(b, 0, len - 1"GBK"+ symbol;
}

 
分享到:
评论

相关推荐

    Java精确截取字符串.doc

    这个问题在文档标题“Java精确截取字符串.doc”中提到,描述也指出了解决字符串过长并需要添加省略号的需求。 以下是一种常见的解决方法,通过判断字符串中的每个字节来确定是否为中文字符,并据此进行截取: ```...

    Java精确截取字符串.pdf

    总的来说,Java中精确截取字符串涉及到字符编码、字节长度计算等多个方面。对于不同的场景,需要选择合适的方法,确保截取后的字符串既能满足长度要求,又能正确显示其中的文本内容。在实际开发中,可以根据项目需求...

    Java精确截取字符串[归类].pdf

    第二种方法是针对中文字符的精确截取,因为中文字符在Java中通常以两个字节表示。这种方法通过遍历字符串的字节数组并计数双字节字符(即中文字符)来实现: ```java private String str; private int ...

    impala中substr()截取中文字符串乱码的问题

    通过这种方式,我们能够克服Impala原生`substr()`函数在处理中文字符串时的局限性,实现更精确且无乱码的字符串截取操作。这种方法不仅适用于中文字符,还可以扩展到其他多字节字符集,如日文或韩文等。同时,这也是...

    字符串截取(按字节)

    本文将深入探讨一种按字节截取字符串的方法,并通过分析一个具体的Java代码示例来解释其实现原理。 #### 核心概念:Unicode与字节 在讨论字符串按字节截取之前,我们首先需要理解几个基础概念。现代计算机系统中,...

    字符串 截取

    根据给定文件的信息,本文将围绕“字符串截取”这一主题进行深入探讨,重点在于如何在Java环境下实现对包含中文字符的字符串进行精确截取,同时确保不会出现半个汉字的情况。 ### 字符串截取的基本概念 在计算机...

    java 分割字符串

    除了`split()`,Java还提供了`substring()`截取子串,`indexOf()`和`lastIndexOf()`查找子串位置,`startsWith()`和`endsWith()`检查字符串开头和结尾,以及`replace()`和`replaceAll()`替换子串等方法。 总之,...

    前后台实现精确截取指定长度字符串(考虑全角半角)

    根据提供的文件信息,本文将详细解释如何在前后端开发中实现对字符串进行精确截取,同时考虑到全角和半角字符的区别。这个问题在处理多语言环境下的文本时尤为重要,因为不同语言中的字符宽度可能有所不同,这直接...

    [待删除]字符串截取 - 中英文

    使用上述方法,可以更灵活地控制字符串的截取,特别是在需要精确控制显示长度的场景下,如新闻摘要、商品列表等。 此外,考虑到国际化的需求,开发者还应该了解并掌握如何在不同语言环境下正确处理字符串,包括但不...

    java字符串处理-中英文-非常有用的

    本文介绍了几种不同的Java字符串截取方法,并对其进行了详细的分析。通过这些方法,我们可以在不同操作系统下有效地处理中英文混合的字符串。需要注意的是,在实际应用中,还需要结合具体需求对这些方法进行适当的...

    java 各种时间的处理,格式化,字符串的各种处理方法,字符集的各种类型转换等!

    - `String`类提供了丰富的操作方法,如`concat()`用于连接字符串,`substring()`截取子串,`replace()`替换指定字符或子串,`trim()`去除两端空格,`toLowerCase()`和`toUpperCase()`转换大小写等。 - 正则表达式...

    字符串工具类

    - 当需要截取字符串的一部分时使用。 ##### 6. `substring(String str, int beginIndex, int endIndex)` **功能:** 获取指定起始和结束位置之间的子字符串。 **参数:** - `str` - 原始字符串。 - `beginIndex` - ...

    Android 带小数点的字符串格式化为固定位数

    1. **手动拼接法**:最基础的方法是通过字符串的截取、判断和拼接来实现。首先,获取小数点的位置,然后分别处理小数点前后的部分。如果不足指定位数,就在前面补0。这种方法简单但不够灵活。 2. **使用`String....

    java.util.Date与java.sql.Date互转及字符串转换为日期时间格式[文].pdf

    Java.util.Date与java.sql.Date的互转及字符串转换为日期时间格式 java.util.Date和java.sql.Date是Java中两个常用的日期时间类,分别属于不同的包。java.util.Date是Java标准库中的日期时间类,而java.sql.Date是...

    java1

    此外,这段代码还展示了如何使用Java的`substring()`方法来截取字符串的一部分。`substring(int beginIndex, int endIndex)`方法返回一个新的字符串,它是原始字符串从`beginIndex`(包含)到`endIndex`(不包含)的...

    Java脏字处理

    Java中的`String`类提供了丰富的API来处理字符串,如`indexOf()`用于查找子串,`replace()`用于替换特定字符或子串,以及`substring()`用于截取字符串的一部分。在处理脏字时,这些方法是基础工具,可以用来检测和...

    10. 数值运算,字符串处理,时间管理2.rar

    在J2ME(Java Micro Edition)开发中,数值运算、字符串处理和时间管理是至关重要的基础知识,对于构建高效且用户友好的移动应用来说必不可少。以下将详细解释这些关键概念。 一、数值运算 在J2ME中,数值运算涵盖...

    java常用函数API经常用的

    `String`类提供了丰富的API,如`length()`获取字符串长度,`charAt(int index)`访问指定位置的字符,`indexOf(String str)`查找子串首次出现的位置,以及`substring(int beginIndex, int endIndex)`截取子串等。...

    JAVA超详细教程

    - 使用substring()方法截取字符串的一部分。 - **5.10 替换** - 使用replace()方法替换字符串中的子字符串。 - **5.11 字符串转化为相应的数值** - 使用Integer.parseInt()、Double.parseDouble()等方法将字符...

    shp文件解析java实现

    在这个场景下,`meteoinfo`可能被用来进一步分析或整合`shp`文件中的地理信息与气象数据,但这需要具体项目的上下文才能给出更精确的解释。 在实际应用中,根据`meteoinfo`库的文档和API,我们可以将其与`geotools`...

Global site tag (gtag.js) - Google Analytics