String如果是中文的长度问题 to Athene(菜菜子)在你的机器上输出长度是 7 的原因,只不过是因为你在编译的时候的编码方式为 iso8859-1 的原因。如果你用这种方式编译: javac -encoding GBK YourClass.java,则输出一定是 5。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String str = "中文abc"; byte[] byteTest = str.getBytes("ISO8859-1"); str = new String(byteTest); System.out.println(str.length()); 这样输出结果还是5,应该怎么办呢? 最简单的方法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); Java为何使用 catch Exception e 无法捕获NullPointerException 帮看一段小程序 如何得到多行文本按钮? 在linux里面配置jdk环境变量出现问题 给大家推荐一个好东西Java Tutorial ZIP文件不能读取!!大家帮帮忙!! 关于for循环的小问题 一品狐在吗,追分 我是学网络的。想学点JAVA。请教大家一个问题。谢谢 在JBuilder里面,如何在一个JFrame里面知道其中的一个对话框点击了哪个按钮? 有谁知道:******关于如何拿到java的考核证书? 急啊!我应该买什么样的kjava书?或哪儿有kjava的教程下载,
byte[] byteTest = str.getBytes("ISO8859-1");
str = new String(byteTest);
System.out.println(str.length());
这样输出结果还是5,应该怎么办呢?
int len=str.getBytes().length;即可 len=7
如果你是这样编译的话,则:
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);