判断字符串长度

     原来一直以为javascript判断字符串长度,很简单的一件事情。只用通过.length就可以轻松搞定。直至最近

才发现自己一直在错。呵呵!

 

    javascript判断字符串长度注意:

    中文和英文字符。特殊的符号。加减乘除等!

   其实判断字符长度,应该判断字节长度。

   以前网上有中很流行的方法。

 

   String.prototype.getBytesLength = function() {
     return this.replace(/[^\x00-\xff]/g, "--").length; 
 };

 

但是该方法存在漏洞。比如  +、-(在中文模式下输入)就会判断出来长度是1.但是你存入到数据库中。

在数据库中这些字符长度却是占2.(本人只做了oracle的验证,其他的没测试过。)

 

咱认为比较合理的教验方法:

 String.prototype.getBytesLength = function() {

 

var bytelen = 0;
 var chars = this.split('');
 for(i = 0; i<chars.length; i++)
 {
  var char = chars[i];
  var urichar = encodeURI(char);
  bytelen += urichar.length == 1 ? 1 : urichar.length / 3;
 }
 return bytelen;
};

 

 

Java中判断字符字节长度:

public static void main(String[] args)
 {
  String s="+";
  String ss="×";
  System.out.println("英文长度:"+s.getBytes().length);
  System.out.println("中文长度:"+ss.getBytes().length);
 }

 

 

在C语言中,判断字符串长度有以下几种常见方法: ### 调用内置函数 `strlen` `strlen` 是C语言标准库 `<string.h>` 中提供的函数,用于计算字符串长度,不包括字符串结束符 `'\0'`。示例代码如下: ```c #include <stdio.h> #include <string.h> int main() { char s[] = "abc"; int len = strlen(s); printf("%d ", len); return 0; } ``` 这种方法简单方便,适合大多数场景使用[^1]。 ### 创建临时变量计算字符串长度 可以通过指针遍历字符串,遇到字符串结束符 `'\0'` 停止,同时使用一个计数器记录字符的数量。示例代码如下: ```c #include <stdio.h> int get_length(char str[]) { char *p = str; int count = 0; while (*p++ != '\0') { count++; } return count; } int main() { char str[] = "Hello"; int len = get_length(str); printf("字符串长度为: %d\n", len); return 0; } ``` 该方法手动实现了类似 `strlen` 的功能,有助于理解字符串长度计算的原理[^2]。 ### 循环遍历字符数组计算长度 通过循环遍历字符数组,当遇到字符串结束符 `'\0'` 时停止,同时累加字符数量得到字符串长度。示例代码如下: ```c #include <stdio.h> int stringLength(char *str) { int len = 0; while (*str++ != '\0') { len++; } return len; } int main() { char str[] = "Hello World!"; int len = stringLength(str); printf("Length of '%s' is %d\n", str, len); return 0; } ``` 此方法也是手动实现字符串长度的计算,思路清晰,便于理解[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值