怎样分割一个编码为gb2312的string? 一个string对象长度超过40个汉字时,将其分割为两条要求:1、在分割汉字时候注意,不能将一个汉字分割成两个字节; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 gb2312用substring好像不会分出半个汉字 gb2312用substring绝对不会分出半个汉字,我试过很多次. 上楼的说法是正确的,因为汉字和字母之类的东西都是unicode编码 看这里: http://www.blogjava.net/rickhunter/articles/26849.html里面有这样一道题的答案: 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 Java 中的 String 是 UNICODE 的。相比之下, C++ 中有 ANSI 的(char[])和 UNICODE 的(wchar_t[])两种。在 Java 中,不可能出现半个汉字。关于这一点的更详细说明:http://www.regexlab.com/zh/encoding.htm 不可能出现半个汉字substring() 我觉得可以将字符串转成byte,然后两个字节取,这样就能分辨出中文了,如果有中文跟英文的情况也可以分出来,因为中文的byte肯定是小于零的。 你看一下这个例子就明白了..汉字没有被分开import java.io.*;public class aaa { public static void main(String[] args) { int intOne; String subString=new String("ABC中华CDE"); intOne=subString.length(); System.out.println("个数"+intOne); String sub=subString.substring(4,6); System.out.println("===="+sub); }} 那位高手来解释一下System类中out,err和in的原理 做一个自动取款机的系统! 一个奇怪的中文问题(在webshpere下没人回答才发到这儿的) 怎么读入一行整数? Java 中Properties文件的保存问题 jni的问题,发现VC和JAVA真是格格不入阿 关于JTree 浮点型数据在计算机中的存储问题 怎样用java模拟键盘输入? 在线等待!!!使用或覆盖一个不鼓励使用的API。 java播放flash,高分求救 怎么写一个方法,但是参数个数是不固定的?
http://www.blogjava.net/rickhunter/articles/26849.html里面有这样一道题的答案:
编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
相比之下, C++ 中有 ANSI 的(char[])和 UNICODE 的(wchar_t[])两种。在 Java 中,不可能出现半个汉字。关于这一点的更详细说明:
http://www.regexlab.com/zh/encoding.htm
import java.io.*;public class aaa {
public static void main(String[] args) {
int intOne;
String subString=new String("ABC中华CDE");
intOne=subString.length();
System.out.println("个数"+intOne);
String sub=subString.substring(4,6);
System.out.println("===="+sub);
}}