String的getBytes()方法是得到一个字串的字节数组,这是众所周知的。但特别要注意的是,本方法将返回该操作系统默认的编码格式的字节数组。如果你在使用这个方法时不考虑到这一点,你会发现在一个平台上运行良好的系统,放到另外一台机器后会产生意想不到的问题。
String s = "Hello!你好!";
System.out.println(s.getBytes().length);
在中文操作系统中返回结果可能为12,而在英文操作系统下为9.这是由于在中文操作系统中,getBytes方法返回的是一个GBK或者GB2312的中文编码的字节数组,其中中文字符,各占两个字节。而在英文平台中,一般的默认编码是“ISO-8859-1”,每个字符都只取一个字节(而不管是否非拉丁字符)。
解决方案为:
使用Unicode编码测试每个位置上的字符,从而区分出英文和中文,再统一计数。
1验证toHexString长度
public int byteLength(String string) {
int count = 0;
for (int i = 0; i < string.length(); i++) {
if (Integer.toHexString(string.charAt(i)).length() == 4) {
count += 2;
} else {
count++;
}
}
return count;
}
2验证该位ASCII码是否大于255
public int byteLength(String string) {
int count = 0;
for (int i = 0; i < string.length(); i++) {
if (string.codePointAt(i)>255) {
count += 2;
} else {
count++;
}
}
return count;
}
3 getBytes()指定编码方式
public int byteLength(String string) throws UnsupportedEncodingException {
int count = 0;
return string.getBytes("GBK").length;
}
分享到:
相关推荐
以下将详细讲解如何在Java中进行字符串长度的判断以及如何截取字符串。 首先,创建一个字符串对象通常使用`String`类的构造函数或者双引号括起来的字符串字面量。例如: ```java String panduan = "你好"; ``` 在...
本文将详细介绍如何使用MATLAB来计算字符串数组中每个字符串的长度,并找出其中最长的字符串长度。这不仅有助于理解MATLAB中的基本字符串操作,而且还能提高对文本数据处理的能力。 #### 二、基础知识介绍 在开始...
下面我们将深入探讨这个函数以及与字符串长度计算相关的知识点。 ### strlen()函数 `strlen()`是PHP的核心函数之一,它返回给定字符串的长度,以字符数计。例如: ```php $str = "Hello, World!"; echo strlen($...
JavaScript 中关于字符串字节长度的计算比较(含汉字字符串) 可用于验证字符串长度。效率比较高。
例如,`"hello".length`将返回5,这在验证字符串长度时非常有用。 2. `charAt(index)`:此方法返回指定位置的字符。例如,`"hello".charAt(0)`将返回`"h"`,用于获取或检查字符串中的特定字符。 3. `indexOf...
处理字符时,应避免超出范围的索引访问,即确保索引值在0到字符串长度减1之间,否则会抛出`IndexOutOfRangeException`异常(常见编程错误12.1)。 正则表达式是一种强大的文本模式匹配工具,用于搜索、替换和验证...
在Python编程语言中,求字符串长度是一个非常基础且常见的操作。这个操作可以帮助我们了解字符串包含多少个字符,这对于数据处理、文本分析以及各种字符串相关的算法都至关重要。标题"求字符串长度的函数.rar"和描述...
### 使用JavaScript验证字符串长度 #### 一、核心概念与目的 在本例中,主要关注的是通过JavaScript对用户输入的姓名进行长度验证,以确保其既不过长也不包含非法字符。这在实际应用中十分常见,如注册表单、个人...
标题“OJ_将数组中的字符串按指定长度重新分割”涉及的是一个在线编程挑战(OJ,Online Judge)的问题,其核心是处理...在这个过程中,我们需要处理可能出现的特殊情况,如字符串长度小于目标长度、数组为空等情况。
如果字符串长度超过固定长度,我们可以在固定长度的位置将其截断,并在后面添加换行符。以下是一个简单的例子: ```csharp public static string FormatStringWithFixedLength(string input, int maxLength) { if ...
对于每个匹配到的字符,将被替换为两个星号 `"**"`,这样就可以通过 `.length` 属性来正确计算包含中文字符的字符串长度。 ```javascript var length = obj.value.replace(/[^\x00-\xff]/g, "**").length; ``` ...
在上面的简单实现中,如果子字符串长度较小,每次查找可能都会遍历大部分父字符串,效率较低。为提高效率,可以考虑使用滑动窗口或KMP(Knuth-Morris-Pratt)算法等高级算法,它们可以在平均时间复杂度上达到线性...
在实际应用中,可能还需要考虑输入验证、错误处理以及优化性能等问题,例如,当输入的十六进制字符串长度不是偶数时的处理,或者大量数据转换时的效率问题。 总结来说,LabVIEW中的十六进制字符串到普通字符串的...
在处理通信数据时,我们经常需要对字符和字符串进行操作,例如将字符转换为字符串,或者从字符串中截取有效字符。以下将详细介绍在TIA博途中如何实现这些操作。 首先,字符转换为字符串的过程通常涉及到ASCII码。...
该方法用于验证字符串长度是否在特定范围内(如6到16个字符之间)。 ```csharp public static bool IsLong(string syllable) { if (!IsNull(syllable)) { // 继续进行长度验证 } } ``` ### 4. 总结 以上方法...
- 验证字符串长度是否超过6个字符; - 使用`Judgementchar`函数验证字符串是否为升序。 3. **编码计算**: - 对于长度小于等于1的字符串,直接使用其第一个字符的ASCII值减去96得到编码; - 对于长度大于1的字符...
字符串长度不一致的问题是编程中常见的一种问题,特别是在使用不同编码格式处理字符串时。PHP作为一种广泛使用的服务器端脚本语言,其字符串处理功能强大但有时也会出现一些问题。字符串长度不一致可能是由于编码...
3. 验证字符串长度,防止数值超出整型范围。 4. 可以自定义异常信息,提高错误处理的可读性。 通过理解和应用这些知识点,你可以创建一个健壮的二进制字符串到十进制数值的转换函数,同时妥善处理可能出现的异常...
因此,在进行字符串拼接时应当谨慎,并对输入进行适当的验证和限制。 除了上述提到的几种实现字符串拼接的方法外,Solidity还推荐了一种新的字节拼接方式。自Solidity 0.6.0版本以来,我们可以使用`bytes.concat`...
js判断输入字符串长度(汉字算两个字符,字母数字算一个) 文本输入时,由于数据库表字段长度限制会导致提交失败,因此想到了此方法验证。 废话不多说上代码: <html> <head> <title>js判断输入...