java String 真实长度

本文介绍了一种计算包含中文字符的字符串长度的方法,通过自定义函数逐字符判断并累加长度,同时探讨了使用正则表达式进行中文字符匹配的技术细节。

实例如下:

public class Char_cn {

  

 public static void main(String[] args) {

 // TODO Auto-generated method stub

 String haha = "我叫兜兜abcd";

 int true_num = String_length(haha);

 System.out.println("true" + true_num);

 int false_num = haha.length();

 System.out.print("flase" + false_num);

 }

 public static int String_length(String value) {

 int valueLength = 0;

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

 for (int i = 0; i < value.length(); i++) {

  String temp = value.substring(i, i + 1);

  if (temp.matches(chinese)) {

  valueLength += 2;

  } else {

  valueLength += 1;

  }

 }

 return valueLength;

 }

}

 

1、判断字符串是否为连续的中文字符(不包含英文及其他任何符号和数字):

Regex.IsMatch("中文","^[/u4e00-/u9fa5]");

2、判断字符串是否为中文字符串(仅不包含英文但可以包含其他符号及数字):

!Regex.IsMatch("中文",@"[a-zA-Z]");

### 如何获取字符串长度 在不同的编程语言中,获取字符串长度的方法有所不同。以下是几种常见编程语言中关于字符串长度的操作: #### Java 中的 `String` 长度Java 中,可以通过调用 `String` 类的 `length()` 方法来获取字符串长度。该方法返回的是字符串中字符的数量[^2]。 ```java public class StringLengthExample { public static void main(String[] args) { String str1 = "Hello"; String str2 = "你好,String"; System.out.println("str1 的长度:" + str1.length()); // 输出 5 System.out.println("str2 的长度:" + str2.length()); // 输出 9 } } ``` 需要注意的是,Java 中的 `String` 是基于 Unicode 字符集实现的,因此某些特殊字符可能会占用多个字节,但这不会影响 `length()` 返回的结果,它始终表示字符数量而非字节数量。 --- #### C++ 中的 `std::string` 长度 C++ 提供了两种方式来获取字符串长度:`length()` 和 `size()` 方法。两者功能完全相同,均用于返回字符串中字符的数量[^3]。 对于 C 风格的字符串(即以 `\0` 结尾的字符数组),可以使用 `<cstring>` 头文件中的 `strlen()` 函数来计算字符串的实际长度,注意此函数不计入终止符 `\0` 的位置[^4]。 ```cpp #include <iostream> #include <string> int main() { std::string cppStr = "Duc"; const char* cStyleStr = "Duc"; std::cout << "C++ string length: " << cppStr.length() << "\n"; // 输出 3 std::cout << "C-style string length: " << strlen(cStyleStr) << "\n"; // 输出 3 return 0; } ``` 如果定义了一个未初始化到零结尾的字符数组,则需要特别小心处理边界条件,因为此时可能无法正确判断字符串真实长度。 --- #### Python 中的字符串长度 Python 使用内置函数 `len()` 来获取字符串或其他序列类型的长度。这同样适用于 Unicode 字符串,并且会统计每一个单独显示出来的字符作为计数单位的一部分。 ```python text = "你好,World" print(len(text)) # 输出 8 ``` 在这里,“你”和“好”各算作一个字符,尽管它们可能是由多字节编码构成[^1]。 --- #### 关于字符串的最大长度限制 不同编程环境下的字符串理论上都有一定的大小上限,主要取决于底层内存分配机制以及具体实现细节。例如,在 JVM 上运行的标准 Java 应用程序里,单个 `String` 对象能够容纳的最大字符数目大约等于 Integer.MAX_VALUE 即约 2^31-1 或者说是超过二十亿个字符[^5];而在实际应用过程中考虑到性能因素通常不会接近这样的极端情况。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值