java 按字节获取字符串长度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 按字节获取字符串长度相关的知识,希望对你有一定的参考价值。

String str ="做·账、收·款、充·账、报·账" 怎么按字节获取他的字符串长度,特别注意的是全角字符· 我用的网上的一个方法,怎么计算str的字节长度是26 ,实际上是30。下面的代码是网上找的一个例子,貌似对于· 这个字符不对呀 public static int getWordCount(String s) int length = 0; for(int i = 0; i < s.length(); i++) int ascii = Character.codePointAt(s, i); if(ascii >= 0 && ascii <=255) length++; else length += 2; return length;

由于Java是基于Unicode编码的,因此,一个汉字的长度为1,而不是2。但有时需要以字节单位获得字符串的长度。例如,“123abc长城”按字节长度计算是10,而按Unicode计算长度是8。为了获得10,需要从头扫描根据字符的Ascii来获得具体的长度。如果是标准的字符,Ascii的范围是0至255,
如果是汉字或其他全角字符,Ascii会大于255。
参考技术A 话说编码和实际字节长度有关系么...
java一个字符char占2个字节的么,15个字符就是30呗

获取字符串长度字符长度字节长度

度量快速开发平台中基础函数中有一个  len  的获取字符长度函数。具体用法是:
len ("123Abc字符串") 

这个方法得到的结果是:9     

即一共有多少个字符,没有区分单字节与双字节的情况。

如果某一个字段设置的长度为9,那刚才这个字符串保存到数据库的时候,会提示字符串过长,因为数据库中一般是按照字节长度来判断的。

度量快速开发平台中,是没有直接提供这个获取字符串字节长度得函数。用户想知道这个字符串占用了多少字节,在平台中如何来得到呢?

我们知道,度量快速开发平台是与c#完美结合使用的,如果二次开发者在使用中需要类似这类功能,那么可以直接从c#中去寻找答案。
C#中有个静态方法,就是获取字符串字节长度的。平台中可以直接使用c#的静态方法。
System.Text.Encoding.Default.GetBytes(字符串).Length
示例:
字节长度.Value= System.Text.Encoding.Default.GetBytes(文本输入框1.Value).Length
字符长度.Value= len(文本输入框1.Value)

技术分享 
其他类似:
‘获取本地计算机名称
msgbox(System.Environment.MachineName)
‘获取本地计算机用户
msgbox(System.Environment.UserName)


原文地址:http://bbs.delit.cn/thread-1065-1-1.html

转载请注明出处:

撰写人:度量科技http://www.delit.cn

以上是关于java 按字节获取字符串长度的主要内容,如果未能解决你的问题,请参考以下文章

java 按字节截取字符串问题

java,要实现字符串按字节截取的方法

java,要实现字符串按字节截取的方法

Java 按字节计算字符串的长度

java规定字符串长度,不够补白

【急求】java 按字节截取字符串,从指定的位置开始,到指定的位置结束