在JAVA中string的长度为什么是length方法 而不是length 属性

在JAVA中string的长度为什么是length方法 而不是length 属性,第1张

其实 tobyliu415 已经说了,我再解释一遍,String 的长度被设计成只能通过方法读取。专门为了防止出现类似 strlength = 5; 之类的语句。因为这是不合理的语句,用户是不应该这样设定字符串的长度的,应该只能读取它。

这是封装,是面向对象的三大精髓之一,如果你仍然不理解上面的话,那没办法让你立刻理解,你需要慢慢熟悉面向对象。

EncodingGetBytes ();

EncodingGetString ();

通过这两个方法将汉字字符编码为字节数组,同样知道了汉字GB2312的字节数组编码也就可以将字节数组解码为汉字字符。

Encoding gb=SystemTextEncodingGetEncoding("gb2312");

object[] bytes=gbEncodingGetBytes ("好");

发现得到了一个长度为2的字节数组bytes,使用

string lowCode = SystemConvertToString(bytes[0], 16); //取出元素1编码内容(两位16进制)

string hightCode = SystemConvertToString(bytes[1], 16);//取出元素2编码内容(两位16进制)

这样取出的数组为{ba,c3},刚好是“好”字的十六进制区位码

所以每个汉字字符都能变成一个长度为2的十六进制字节数组。

/  

     得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为1,英文字符长度为05  

     @param String s 需要得到长度的字符串  

     @return int 得到的字符串长度  

    /   

   public static double getLength(String s) {  

    double valueLength = 0;    

       String chinese = "[\u4e00-\u9fa5]";    

       // 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1    

       for (int i = 0; i < slength(); i++) {    

           // 获取一个字符    

           String temp = ssubstring(i, i + 1);    

           // 判断是否为中文字符    

           if (tempmatches(chinese)) {    

               // 中文字符长度为1    

               valueLength += 1;    

           } else {    

               // 其他字符长度为05    

               valueLength += 05;    

           }    

       }    

       //进位取整    

       return  Mathceil(valueLength);    

   }

以上就是关于在JAVA中 string的长度为什么是length方法 而不是length 属性全部的内容,包括:在JAVA中 string的长度为什么是length方法 而不是length 属性、如何获取字符串的长度、java 怎样判断字符串的长度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9348195.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存