`
leign
  • 浏览: 169065 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

无乱码截取汉字字母数字混合字符串

    博客分类:
  • JAVA
F# 
阅读更多
无乱码截取汉字字母数字混合字符串
其实思路很简单,一个汉字占两个字节,其他英文字母占一个,故,只要截的地方不在那个汉字的‘中间’就行了。
思路:奖字符串字节化,转化为字节数组,统计到限制长度左右的汉字数以及其他字母数,最后再来取舍。

public class SubString {
	private String target;
	
	public static String getSubString(String str,int limitLen)
	{
		String sub = null;
		
		int len = str.length();
		
		byte[] bytes = str.getBytes();
		int num=0;
		for(int i=0;i<bytes.length;i++){
			if(bytes[i]<0)
				num+=2;
			else
				num++;
			
			if(num >= limitLen)
				break;
		}
		
		if(num > limitLen){
			num-=2;
		}
		
		sub = new String(bytes,0,num);
		
		return sub;
	}

	public static void main(String[] args)
	{
		String target = "asier有法可依的要jdi在f我i的23423";
		
		System.out.println(getSubString(target, 7));
		System.out.println(getSubString(target, 8));
		System.out.println(getSubString(target, 9));
	}
}
0
0
分享到:
评论
2 楼 leign 2009-12-09  
009dsa 写道
兄弟 我不明白你在干什么?

中文可以取半个吗?


可倒是可以,但可能出现乱码,可以找个例子从汉字中间截取,然后看结果
1 楼 009dsa 2009-12-09  
兄弟 我不明白你在干什么?

中文可以取半个吗?

相关推荐

    delphi 实现截取字符串中中文+英文混合截取

    在Delphi编程环境中,处理中文和英文混合的字符串截取是一项常见的任务,特别是在涉及到文本处理、数据解析或者用户界面展示时。由于Unicode编码的存在,中文字符通常占据两个字节,而英文字符则占据一个字节,这就...

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

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

    java中截取带汉字的字符串

    ### Java中截取带汉字的字符串 在Java编程语言中,处理包含中文字符的字符串时,经常遇到的一个问题是如何正确地截取这些字符串。如果直接按照字节(byte)来进行分割,很容易导致中文字符被截断一半,从而形成乱码。...

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

    在Java编程语言中,处理带有汉字的字符串时,由于汉字占据多个字节,按照字节进行截取可能会导致汉字被不完整地分割,从而产生乱码。为了解决这个问题,我们需要理解Unicode编码以及如何在Java中正确处理多字节字符...

    JavaScript截取中文字符串

    特别是在处理包含多种字符集(如英文与中文)的字符串时,考虑到不同字符编码长度的差异性,简单地按照字符数量进行截取可能会导致显示效果不佳或出现乱码等问题。本文将详细介绍一个专门用于处理中文字符串截取的...

    C# 按照字节长度截取字符串

    在C#编程中,有时我们需要根据字节长度来截取字符串,这可能是因为要处理不同编码格式的数据,或者为了适应特定的传输限制。本篇将详细介绍如何在C#中按照字节长度截取字符串,并结合正则表达式进行操作。 首先,...

    C#字符串截取固定长度的方法

    对于包含非ASCII字符(如中文、日文等)的字符串,简单的`Substring`方法可能会导致乱码。此时,我们需要考虑字符的实际字节数量。 ```csharp public static string CutStringWithEncoding(string inputString, int...

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

    字符串是由字符组成的序列,而“字符串按照指定的字节数来截取”这个话题,就是指如何在字符串中提取固定字节数的部分。在不同的编程语言中,都有相应的函数或方法来实现这一功能。 在Python中,可以使用内置的`...

    PHP中如何截取中文字符串

    总结,处理中文字符串截取时,理解字符编码和字符串处理函数的特性至关重要。PHP的mbstring扩展提供了强大且安全的方法来处理多字节字符,确保了中文字符串截取的准确性。在编写代码时,要时刻关注字符串的编码类型...

    ASP截取字符串

    - 截取字符串时要注意字符串的编码,尤其是涉及非ASCII字符时,可能会出现乱码问题。 - 如果截取的长度超过实际字符串长度,`Left`, `Right`, 和 `Mid`函数不会抛出错误,而是返回整个字符串或空字符串。 - 在...

    asp.net截取字符串方法

    在ASP.NET开发中,有时我们需要对字符串进行截取操作,特别是当涉及到多字节字符(如中文)时,简单的字符串截取可能会导致乱码问题。本文将详细介绍一种使用字节精确计算的ASP.NET字符串截取方法,并通过具体的代码...

    LabVIEW拆分中文字符串.rar

    在LabVIEW中处理字符串,尤其是中文字符串,有时会涉及到特殊的技巧和注意事项,因为中文字符是多字节的,与英文等单字节字符处理方式有所不同。这个"LabVIEW拆分中文字符串.rar"文件很可能是提供了一个解决此类问题...

    字符串 截取

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

    C#(.net)中按字节数截取字符串最后出现乱码问题的解决

    最近需要用到按字节数截取字符串。在网上找了很多方法。 Encoding.Default.GetString采用的Default Encoding.UTF8.GetBytes采用的是utf-8编码。这样当然是乱码。尤其出现中文时候。 对这类数据处理当然要用统一的...

    截取中英文字符串函数

    可以截取中英文字符串,也可以含有字符,里面有好几个方法 有按字符个数截取 有按字节数来截取不会存在乱码

    解析使用substr截取UTF-8中文字符串出现乱码的问题

    如果我们按照`strlen()`的长度来截取字符串,就很可能会截到中文字符中间,从而出现乱码。 为了正确地截取UTF-8编码的字符串,我们需要采用一个考虑到字符实际占用字节长度的截取方法。文章中提供了一个名为`cutstr...

    C# 将中文乱码转换成中文

    当我们在不同的系统或网络环境中传输或存储文本时,可能会遇到字符编码不一致导致的中文乱码问题。本文将深入探讨如何使用C#语言解决中文乱码问题,将乱码文本正确转换为可读的中文。 ### 核心知识点:字符编码与...

    winform的字符串转换乱码解决

    在Windows Forms(Winform)应用开发中,遇到字符串转换出现乱码的问题是非常常见的。这通常涉及到字符编码的不一致或不正确处理。本篇将详细解释这个问题的原因,并提供解决方案。 一、乱码产生的原因 1. 文件...

    按byte截取字符串

    确保使用的字符集与原始字符串相同,以避免乱码问题。 在SliceByByte.java这个文件中,我们可以看到实现这个功能的基本逻辑。它可能包含了一个名为`sliceByByte`的方法,接受一个字符串和要截取的字节数作为参数,...

    java按字节截取带有汉字的字符串的解法(推荐)

    本文将深入探讨如何正确地按字节截取带有汉字的字符串,以确保不出现半字符或者乱码的情况。 首先,我们需要了解的是,Java默认使用Unicode编码,它对每个字符都分配了一个唯一的16位编码,这意味着大多数汉字在...

Global site tag (gtag.js) - Google Analytics