`
seara
  • 浏览: 649175 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

在Java中按字节获得字符串长度的两种方法

阅读更多

本文为原创,如需转载,请注明作者和出处,谢谢!

由于Java是基于Unicode编码的,因此,一个汉字的长度为1,而不是2。但有时需要以字节单位获得字符串的长度。例如,“123abc长城”按字节长度计算是10,而按Unicode计算长度是8。为了获得10,需要从头扫描根据字符的Ascii来获得具体的长度。如果是标准的字符,Ascii的范围是0至255,如果是汉字或其他全角字符,Ascii会大于255。因此,可以编写如下的方法来获得以字节为单位的字符串长度。
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->publicintgetWordCount(Strings)
{
intlength=0;
for(inti=0;i<s.length();i++)
{
intascii=Character.codePointAt(s,i);
if(ascii>=0&&ascii<=255)
length
++;
else
length
+=2;

}
returnlength;

}

当然,也可以采用正则表达式来简化上面的方法,代码如下:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->public intgetWordCount(Strings)
{

s
=s.replaceAll("[^\\x00-\\xff]","**");
intlength=s.length();
returnlength;
}
上面代码的基本原理是将字符串中所有的非标准字符(双字节字符)替换成两个标准字符(**,或其他的也可以)。这样就可以直接例用length方法获得字符串的字节长度了。



新浪微博手机客户端(Android/Ophone版)发布

《银河系列原创教程》发布

《Java Web开发速学宝典》出版,欢迎定购

分享到:
评论

相关推荐

    关于java按字节截取带有汉字的字符串的解法

    在Java编程语言中,处理带有汉字的字符串时,由于汉字占据多个字节,按照字节进行截取可能会导致汉字被不完整地分割,从而产生乱码。为了解决这个问题,我们需要理解Unicode编码以及如何在Java中正确处理多字节字符...

    java编写一个截取字符串的函数,输入为一个字符串和字节数.docx

    在 Java 中,字符串截取是一种常见的操作,特别是在处理汉字和 Unicode 字符时。下面是关于 Java 字符串截取函数的知识点: 字符串截取函数 Java 中有多种方式可以实现字符串截取,包括使用 `substring`、`split` ...

    java中常用的字符串的截取方法

    在 Java 中,字符串截取是一种非常重要的操作,通过本文,我们可以了解到 Java 中常用的字符串截取方法,包括 length()、charAt()、getChars()、getBytes() 等等。这些方法可以帮助我们高效地操作字符串,解决实际...

    Java截取中英文混合字符串的方法

    在Java中,字符串的截取可以使用substring方法,但是这种方法不能保证汉字不被截半个,因为它是按照字符的个数来截取的,而中文字符占用两个字节,英文字符占用一个字节。因此,需要使用特殊的方法来截取中英文混合...

    java判断中文字符串长度的简单实例

    因此,在这篇“Java判断中文字符串长度的简单实例”中,作者提供了几种计算字符串长度的方法,尤其强调了如何正确计算含有中文字符的字符串长度。 首先,Java中字符串的长度使用`.length()`方法来获取,但这个方法...

    JAVA 字符串应用笔记

    Java中有两种创建字符串的方式:`new String()`构造器和字面量`"..."`。字面量方式会创建一个常量字符串,存储在字符串池中;而构造器则会在堆上创建对象。 2. **字符串不可变性**: Java中的字符串是不可变的,...

    java字符串的各种编码转换

    根据提供的文件信息,本文将详细解释Java中字符串的不同编码转换方法及原理,并深入探讨每种编码格式的特点。 ### Java字符串的编码转换 在Java中,处理不同字符集之间的字符串转换是一项常见任务。尤其是在处理...

    java字符串操作大全

    字符串长度:`length()` 此方法返回字符串的长度。例如: ```java char chars[] = {'a', 'b', 'c'}; String s = new String(chars); int len = s.length(); ``` 这里,`len` 的值为3,因为字符串`s`包含了三个字符...

    java字符串处理-中英文-非常有用的

    本文将基于提供的代码片段来探讨几种不同的Java字符串处理方法,并着重分析这些方法是如何兼容中英文操作系统的。 #### 一、字符串处理方法概述 提供的代码展示了几个不同的`getSubString`方法,用于实现字符串的...

    JAVA中汉字字符转化为英文字符

    - 使用 `getBytes()` 方法获取字符串的字节数组。 - 遍历字节数组,检查每个字节是否小于0(即非ASCII字符)。 - 如果是负数,则使用位运算 `(bt[i] & (0x7f))` 转换为相应的ASCII值,并添加到结果字符串中。 - ...

    java中英文字符串截取

    2. **字符与字节的区别**:在讨论字符串长度时,需要区分字符数和字节数。一个字符可能由多个字节组成,尤其是在处理非英文字符时。因此,简单地通过字符串的`length()`方法获取的长度实际上是指字符数,而不是字节...

    精彩编程与编程技巧-如何取得中英混合字符串的长度?...

    在探讨如何获取中英文混合字符串长度的过程中,我们首先需要理解几个关键的概念:字符编码、不同编程语言中的字符串处理方法以及一些具体的实现技巧。本篇文章将深入解析这些概念,并提供具体的解决方案。 ### 字符...

    JAVA可逆带秘钥字符串加密算法

    本文将深入探讨“JAVA可逆带秘钥字符串加密算法”,这是一种允许数据在加密后仍能通过正确的密钥解密回原始形式的加密技术。 在Java中,最常见的可逆加密算法包括DES(Data Encryption Standard)、3DES(Triple ...

    Java精确截取字符串.pdf

    在Java编程中,有时我们需要对字符串进行精确截取,以便适应特定的需求,比如在网页显示、数据存储或者传输时限制长度。本篇将探讨如何在Java中实现这一功能。 首先,最常见的一种方法是使用`substring()`方法。...

    Java精确截取字符串.doc

    在Java编程中,有时我们需要对字符串进行精确截取,特别是在处理中文字符时,由于中文字符在内存中通常以双字节形式存储,因此简单的按照字符数截取可能会导致汉字被分割,影响显示效果。这个问题在文档标题“Java...

    理解java中的字符串的内存分配

    在Java中,字符串是一种非常重要的数据类型,广泛应用于各种程序开发场景之中。对于开发者来说,深入理解字符串的内存分配机制不仅能帮助他们写出更高效的代码,还能避免一些常见的内存泄漏问题。 #### 字符串对象...

    java常用字符串函数集锦

    replace() 函数用于替换字符串中的某些字符或字符序列,它有两种形式,第一个是:String replace(char original, char replacement),它将字符串中的所有 original 字符 替换为 replacement 字符。第二种是:String ...

    根据字节数截取字符串

    在实际应用中,这种根据字节数截取字符串的方法常用于限制显示长度、发送网络数据包或处理数据库字段长度限制等问题。需要注意的是,处理字符编码时要谨慎,以防止出现乱码问题。在选择编码时,要确保所有处理字符串...

    详解Java String字符串获取每一个字符及常用方法

    在Java中,有多种方法可以获取字符串中的每一个字符,以下是其中的一些: 1. 使用charAt方法 ```java String s = "hello"; char c = s.charAt(0); // 获取第一个字符 ``` 2. 使用substring方法 ```java String s = ...

    js java 判断中文,英文的混合长度

    通过以上介绍,我们可以看到在JavaScript和Java中,都有多种方法可以用来处理中文和英文混合的字符串长度计算问题。选择哪种方法取决于具体的应用场景和技术限制。无论是JavaScript还是Java,核心思想都是通过对字符...

Global site tag (gtag.js) - Google Analytics