`
zhuojb
  • 浏览: 91267 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

JAVA 实现截取字符串

    博客分类:
  • Java
阅读更多

/**
	 *该方法用于:截取字符串
	 *使用技巧:
	 *假如要截取长度相当于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代码实现了一个截取字符串的函数,该函数能够根据指定的字节数截取字符串,并保证在截取过程中不会将中文字符截断,也就是说,如果一个中文字符的字节长度超过了一个字节,那么在截取时会保持该字符的...

    Java精确截取字符串.doc

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

    java编写一个截取字符串的函数,输入为一个字符串和字节数.docx

    在 `main` 方法中,我们创建了一个 `SplitString` 对象,并调用其 `SplitIt` 方法来截取字符串。 总结 本例中,我们实现了一个 Java 字符串截取函数,该函数可以截取指定字节的字符串,并保证汉字不被截半个。该...

    jsp页面截取字符串

    JSP 页面实质上是 Java 代码的视图部分,因此可以使用 Java 的 String 类提供的方法来截取字符串。以下是一些常用的方法: - `substring(int beginIndex, int endIndex)`:此方法用于从字符串中提取子字符串。`...

    java中如何截取字符串.txt

    根据提供的文件信息,本文将详细解释Java中截取字符串的各种方法及其使用场景,并结合部分示例代码进行说明。 ### Java中截取字符串的方法 在Java编程语言中,字符串的处理是一项非常重要的技能,特别是在开发中...

    截取字符串

    在编程领域,字符串操作是一项基础且重要的任务,而“截取字符串”是其中的一个关键功能。这个小demo展示了如何在不同的编程环境中实现字符串截取,同时也涉及到字符串的空格处理。接下来,我们将深入探讨这两个主题...

    java中截取带汉字的字符串

    3. **实现截取逻辑**:遍历字符串,按照计算出的次数进行截取,并打印或存储每次截取的结果。 #### 示例代码解析 ```java package test; class SplitString { String splitStr; int splitByte; public ...

    Java精确截取字符串.pdf

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

    按byte截取字符串

    本篇文章将详细探讨“按byte截取字符串”这一技术点,并通过两个Java文件——SliceByByteTest.java和SliceByByte.java的实例来阐述其实现方法。 首先,我们需要理解字符串在计算机内存中的存储方式。在Java中,字符...

    截取指定长度的字符串

    例如,在Python中,你可以使用切片操作符`[start:end]`来截取字符串,其中`start`是开始索引,`end`是结束索引(不包括该位置的字符)。例如,对于字符串`s = "Hello, world!"`,`s[7:12]`将返回`"world"`。 2. ...

    怎么截取字符串的小程序

    在标题为“怎么截取字符串的小程序”的知识主题中,我们将深入探讨如何在不同的编程语言中实现这一功能,以及它在实际应用中的价值。描述中提到的方法是通过确定字符串的起始位置和结束位置,然后进行截取,这是一种...

    关于java按字节截取带有汉字的字符串的解法

    Java中的`String`类提供了多种截取字符串的方法,如`substring()`、`subSequence()`等,但它们都是基于字符(char)而不是字节的。因此,如果我们需要按照字节截取,需要自定义方法来处理。以下是一个简单的示例,...

    字符串按照指定的字节数来截取

    在Python中,可以使用内置的`[start:end]`切片操作来截取字符串。如果要考虑字节,我们需要使用`encode()`方法将字符串转化为字节串,因为Python的切片默认是基于字符的。例如: ```python s = "你好,世界" byte_s...

    截取特定部分字符串

    在编程领域,特别是Android和Java开发中,经常需要处理字符串并从中截取特定部分。"截取特定部分字符串"这个话题涉及到字符串操作的基础知识,它包括查找字符串的开始位置、结束位置,然后提取这两个位置之间的子...

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

    在Java编程中,有时我们需要对字符串进行精确的截取,以适应特定的显示需求或处理长文本。在上述内容中,主要讨论了两种常见的Java字符串截取方法。 第一种方法是使用`substring()`函数,这是一个基础且直接的字符...

    java字符串处理取出括号内的字符串

    例如,我们可以使用`substring()`方法来截取字符串的一部分,但这并不适用于提取括号内的内容,因为我们需要识别开括号和闭括号的位置。 接下来,我们引入正则表达式(Regular Expression),它是处理字符串的强大...

    Java字符串查找和提取异常处理

    本文将详细介绍如何在Java中实现字符串查找与提取功能,并在此过程中妥善处理可能出现的各种异常情况。通过分析提供的代码示例`IndexOfAndCharAt.java`,我们将了解到如何自定义异常、读取用户输入、查找字符串中的...

    java中英文字符串截取

    在Java编程语言中,处理字符串是一项常见的任务,尤其是在进行...上述代码提供了一个具体的示例,展示了如何在GBK编码下安全地截取字符串,但开发者也应熟悉其他常见编码(如UTF-8),以便在不同的应用场景中灵活应对。

    实现一个按字节来截取字符串的方法,功能类似于string类的substring方法,

    实现一个按字节来截取字符串的方法,功能类似于string类的substring方法,String类是按字符截取 的,例如"中国abc".substring(1,3),将返回“国a”。这里 要求按字节截取,一个英文字符当一个字节,一个中文字符当两...

    截取如下字符串“java程序教程”的前5个字节,字符串应该为“java程”,截取前6个字符,字符串也应该为“java程”,程序实现之.

    为了实现这一需求,Java提供了String类的getBytes()方法,用于将字符串转换成字节数组,同样也提供了substring()方法用于截取字符串。但在本例中,使用substring()方法无法直接达到目标,因为这种方法无法直接对字节...

Global site tag (gtag.js) - Google Analytics