字符串是可以转变成字节数组,然后统计一下字节数组的长度即可,参考如下代码:
Java语言中,中文字符所占的字节数取决于字符的编码方式,一般情况下,采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节;采用GB2312或GBK编码方式时,一个中文字符占2个字节;而采用UTF-8编码方式时,一个中文字符会占3个字节。
public static void main(String []args) throws UnsupportedEncodingException {
运行结果:2
System.out.println("测试".getBytes("ISO8859-1").length)
运行结果:4
System.out.println("测试".getBytes("GB2312").length)
运行结果:4
System.out.println("测试".getBytes("GBK").length)
运行结果:6
System.out.println("测试".getBytes("UTF-8").length)
}
c# 获取字符串的字节数C#截取字符串字节数 代码如下:
public int bytelenght(string str)
{
byte[] bytestr = System.Text.Encoding.Unicode.GetBytes(str)
int j = 0
for (int i = 0i <bytestr.GetLength(0)i++)
{
if (i % 2 == 0)
{
j++
}
else
{
if (bytestr[i] >0)
{
j++
}
}
}
return j
}
谢谢采纳
c++ 怎样获取一串字符串的字符数,不是字节数定义一个字符数组,然后根据字符长度循环得到字符
比如char ch[20]
这个20可以用字符实际长度getlength()获取
然后再循环获取字符
ch[i]
c#求字符串的字节数其实用不着那么复杂计算的。注意:C#中string.Length只是计算字符串“字符”的个数,不计算字节;但是汉字两个字节+数字(英文字符)一个字节,才是6个,简单的代码如下: byte[] bytes = Encoding.Default.GetBytes("1243我")Default(根据自己究竟是汉字还是数字等,自动合理分配内存所需要的字节空间)
Console.WriteLine(bytes.Length)
C#如何获得存放字符串的字节数组?byte[] System.Text.Encoding.Default.GetBytes(string s)
如何计算一个Unicode字符串的字节数
你就是一个byte一个byte读取的吧?一个汉字两个byte(不含surrogate情况),文件中存两个byte,你从文件中读取2个byte,就是这样 查看原帖>>
java下字符串和字节数组如何转换?strRead = String.copyValueOf(strRead.toCharArray(), 0, byBuffer.length])2、字符串转换成字节数组 byte[] byBuffer = new byte[200]byBuffer= strInput.getBytes()注意:如果字符串里面含有中文,要特别注意,在android系统下,默认是UTF8编码,一个中文字符相当于3个字节,只有gb2312下一个中文相当于2字节。
RandomAccessFile类public class RandomAccessFile extends Object implements DataOutput, DataInput, Closeable
此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte
数组。存在指向该隐含数组的光标或索引,称为文件指针;输入 *** 作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。如果随机访问文件以读取/写入模式创建,则输出 *** 作也可用;输出 *** 作从文件指针开始写入字节,并随着对字节的写入而前移此文件指针。写入隐含数组的当前末尾之后的输出 *** 作导致该数组扩展。该文件指针可以通过
getFilePointer 方法读取,并通过 seek 方法设置。
public void seek(long pos)
throws IOException设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入 *** 作。偏移量的设置可能会超出文件末尾。偏移量的设置超出文件末尾不会改变文件的长度。只有在偏移量的设置超出文件末尾的情况下对文件进行写入才会更改其长度。
参数:pos - 从文件开头以字节为单位测量的偏移量位置,在该位置设置文件指针。
抛出:IOException - 如果
pos 小于 0 或者发生 I/O 错误。
BufferedReader br=new BufferedRead(new FileReader(file))StringBuffer sb=new StringBuffer()
String line
while((line=br.readLine())!=null){
sb.append(line)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)