/**
*该方法用于:截取字符串
*使用技巧:
*假如要截取长度相当于10个中文汉字的字符串,超出用".."显示,调用subString(str,19,"..");
*如果调用subString(str,20,".."),遇到包含奇数个单字节字符如a/b/c/d的情况下,将会多截一个字;
* @param str
* @param toCount 字节数 a--1字节,中文汉字--2字节,(汉字数*2-1)
* @param more
* @return
*/
public static String subString(String str, int toCount,String more)
{
String ss="";
if(null==str||"".equals(str))
return "";
try {
byte[] bytes = str.getBytes("Unicode");
int n = 0; // 表示当前的字节数
int i = 2; // 要截取的字节数,从第3个字节开始
for (; i < bytes.length && n <=toCount; i++) {
if (i % 2 == 1) {
n++; // 在UCS2第二个字节时n加1
} else {
// 当UCS2编码的第一个字节不等于0时,该UCS2字符为汉字,一个汉字算两个字节
if (bytes[i] != 0) {
n++;
}
}
}
// 如果i为奇数时,处理成偶数
if (i % 2 == 1) {
// 该UCS2字符是汉字时,去掉这个截一半的汉字
if (bytes[i - 1] != 0)
i = i -1;
// 该UCS2字符是字母或数字,则保留该字符
else
i = i + 1;
}
ss= new String(bytes, 0, i, "Unicode");
if(toCount<bytes.length-2)
ss+=more;
//System.out.println(bytes.length+"--->"+toCount);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ss;
}
分享到:
相关推荐
本例通过Java代码实现了一个截取字符串的函数,该函数能够根据指定的字节数截取字符串,并保证在截取过程中不会将中文字符截断,也就是说,如果一个中文字符的字节长度超过了一个字节,那么在截取时会保持该字符的...
这个问题在文档标题“Java精确截取字符串.doc”中提到,描述也指出了解决字符串过长并需要添加省略号的需求。 以下是一种常见的解决方法,通过判断字符串中的每个字节来确定是否为中文字符,并据此进行截取: ```...
在 `main` 方法中,我们创建了一个 `SplitString` 对象,并调用其 `SplitIt` 方法来截取字符串。 总结 本例中,我们实现了一个 Java 字符串截取函数,该函数可以截取指定字节的字符串,并保证汉字不被截半个。该...
JSP 页面实质上是 Java 代码的视图部分,因此可以使用 Java 的 String 类提供的方法来截取字符串。以下是一些常用的方法: - `substring(int beginIndex, int endIndex)`:此方法用于从字符串中提取子字符串。`...
根据提供的文件信息,本文将详细解释Java中截取字符串的各种方法及其使用场景,并结合部分示例代码进行说明。 ### Java中截取字符串的方法 在Java编程语言中,字符串的处理是一项非常重要的技能,特别是在开发中...
在编程领域,字符串操作是一项基础且重要的任务,而“截取字符串”是其中的一个关键功能。这个小demo展示了如何在不同的编程环境中实现字符串截取,同时也涉及到字符串的空格处理。接下来,我们将深入探讨这两个主题...
3. **实现截取逻辑**:遍历字符串,按照计算出的次数进行截取,并打印或存储每次截取的结果。 #### 示例代码解析 ```java package test; class SplitString { String splitStr; int splitByte; public ...
总的来说,Java中精确截取字符串涉及到字符编码、字节长度计算等多个方面。对于不同的场景,需要选择合适的方法,确保截取后的字符串既能满足长度要求,又能正确显示其中的文本内容。在实际开发中,可以根据项目需求...
本篇文章将详细探讨“按byte截取字符串”这一技术点,并通过两个Java文件——SliceByByteTest.java和SliceByByte.java的实例来阐述其实现方法。 首先,我们需要理解字符串在计算机内存中的存储方式。在Java中,字符...
例如,在Python中,你可以使用切片操作符`[start:end]`来截取字符串,其中`start`是开始索引,`end`是结束索引(不包括该位置的字符)。例如,对于字符串`s = "Hello, world!"`,`s[7:12]`将返回`"world"`。 2. ...
在标题为“怎么截取字符串的小程序”的知识主题中,我们将深入探讨如何在不同的编程语言中实现这一功能,以及它在实际应用中的价值。描述中提到的方法是通过确定字符串的起始位置和结束位置,然后进行截取,这是一种...
Java中的`String`类提供了多种截取字符串的方法,如`substring()`、`subSequence()`等,但它们都是基于字符(char)而不是字节的。因此,如果我们需要按照字节截取,需要自定义方法来处理。以下是一个简单的示例,...
在Python中,可以使用内置的`[start:end]`切片操作来截取字符串。如果要考虑字节,我们需要使用`encode()`方法将字符串转化为字节串,因为Python的切片默认是基于字符的。例如: ```python s = "你好,世界" byte_s...
在编程领域,特别是Android和Java开发中,经常需要处理字符串并从中截取特定部分。"截取特定部分字符串"这个话题涉及到字符串操作的基础知识,它包括查找字符串的开始位置、结束位置,然后提取这两个位置之间的子...
在Java编程中,有时我们需要对字符串进行精确的截取,以适应特定的显示需求或处理长文本。在上述内容中,主要讨论了两种常见的Java字符串截取方法。 第一种方法是使用`substring()`函数,这是一个基础且直接的字符...
例如,我们可以使用`substring()`方法来截取字符串的一部分,但这并不适用于提取括号内的内容,因为我们需要识别开括号和闭括号的位置。 接下来,我们引入正则表达式(Regular Expression),它是处理字符串的强大...
本文将详细介绍如何在Java中实现字符串查找与提取功能,并在此过程中妥善处理可能出现的各种异常情况。通过分析提供的代码示例`IndexOfAndCharAt.java`,我们将了解到如何自定义异常、读取用户输入、查找字符串中的...
在Java编程语言中,处理字符串是一项常见的任务,尤其是在进行...上述代码提供了一个具体的示例,展示了如何在GBK编码下安全地截取字符串,但开发者也应熟悉其他常见编码(如UTF-8),以便在不同的应用场景中灵活应对。
实现一个按字节来截取字符串的方法,功能类似于string类的substring方法,String类是按字符截取 的,例如"中国abc".substring(1,3),将返回“国a”。这里 要求按字节截取,一个英文字符当一个字节,一个中文字符当两...
为了实现这一需求,Java提供了String类的getBytes()方法,用于将字符串转换成字节数组,同样也提供了substring()方法用于截取字符串。但在本例中,使用substring()方法无法直接达到目标,因为这种方法无法直接对字节...