当前位置: 技术问答>java相关
String如果是中文的长度问题
来源: 互联网 发布时间:2015-01-30
本文导语: String str = "中文abc";现在str.length()=5, 有没有方法对str处理后,使得str.length()为7? 怎样才能使中文站两个长度? 那位老大指导指导小弟 | 最简单的方法 int len=str.getBytes().length; 即可 len=7 | ...
String str = "中文abc";现在str.length()=5,
有没有方法对str处理后,使得str.length()为7?
怎样才能使中文站两个长度?
那位老大指导指导小弟
有没有方法对str处理后,使得str.length()为7?
怎样才能使中文站两个长度?
那位老大指导指导小弟
|
最简单的方法
int len=str.getBytes().length;
即可 len=7
int len=str.getBytes().length;
即可 len=7
|
javac -encoding ISO8859-1 YourClass.java
如果你是这样编译的话,则:
String str = "中文abc";
System.out.println(str.length());
输入的一定是 7。
javac -encoding GBK YourClass.java
如果你是这样编译的话,则:
String str = "中文abc";
System.out.println(str.length());
输入的一定是 5。
以下的语句,你用两种编译方式输出的结果是不同的,这也是很多系统产生中文问题的原因。
慢慢体会其中的奥妙吧,其实中文问题很简单的。
String str = "中国";
System.out.println("String length: " + str.length());
System.out.println("Byte array length: " + str.getBytes().length);
System.out.println("String: " + str);
str = new String(str.getBytes("ISO8859-1"), "GBK");
System.out.println(str);
如果你是这样编译的话,则:
String str = "中文abc";
System.out.println(str.length());
输入的一定是 7。
javac -encoding GBK YourClass.java
如果你是这样编译的话,则:
String str = "中文abc";
System.out.println(str.length());
输入的一定是 5。
以下的语句,你用两种编译方式输出的结果是不同的,这也是很多系统产生中文问题的原因。
慢慢体会其中的奥妙吧,其实中文问题很简单的。
String str = "中国";
System.out.println("String length: " + str.length());
System.out.println("Byte array length: " + str.getBytes().length);
System.out.println("String: " + str);
str = new String(str.getBytes("ISO8859-1"), "GBK");
System.out.println(str);