java 判断含有中文的字符串的长度

  1. public static boolean isLetter(char c) {
  2. int k = 0x80;
  3. return c / k == 0 ? true : false;
  4. }
  5. /**
  6. * 判断字符串是否为空
  7. * @param str
  8. * @return
  9. */
  10. public static boolean isNull(String str){
  11. if(str==null||str.trim().equals("")||str.trim().equalsIgnoreCase("null")){
  12. return true;
  13. }else{
  14. return false;
  15. }
  16. }
  17. /**
  18. * 得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为2,英文字符长度为1
  19. * @param String s 需要得到长度的字符串
  20. * @return int 得到的字符串长度
  21. */
  22. public static int length(String s) {
  23. if (s == null)
  24. return 0;
  25. char[] c = s.toCharArray();
  26. int len = 0;
  27. for (int i = 0; i < c.length; i++) {
  28. len++;
  29. if (!isLetter(c[i])) {
  30. len++;
  31. }
  32. }
  33. return len;
  34. }
  35. /**
  36. * 得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为1,英文字符长度为0.5
  37. * @param String s 需要得到长度的字符串
  38. * @return int 得到的字符串长度
  39. */
  40. public static double getLength(String s) {
  41. double valueLength = 0;
  42. String chinese = "[\u4e00-\u9fa5]";
  43. // 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1
  44. for (int i = 0; i < s.length(); i++) {
  45. // 获取一个字符
  46. String temp = s.substring(i, i + 1);
  47. // 判断是否为中文字符
  48. if (temp.matches(chinese)) {
  49. // 中文字符长度为1
  50. valueLength += 1;
  51. } else {
  52. // 其他字符长度为0.5
  53. valueLength += 0.5;
  54. }
  55. }
  56. //进位取整
  57. return  Math.ceil(valueLength);
  58. }
  59. 转载来源:http://blog.csdn.net/z69183787/article/details/18843925
时间: 2024-08-24 19:45:04

java 判断含有中文的字符串的长度的相关文章

java处理含有中文的字符串.

1. 问题描述: 原始数据是以行为单位的, 每行固定长度931个字节, 汉字占2个字节, 按照字典描述,共有96个字典,只有第32个字典为中文地址, 所以需要单独处理. 由于项目设计保密,故删除敏感数据. 供实验的数据是测试数据. 在处理过程中,按照规定的字典长度截取字符串的时候,发现处理到汉字的时候出错. 那就需要单独处理汉字. 比较麻烦. 所以写了如下简便方法, 如有更好的解决方案,还请多多交流. 如何计算含有中文的字符串长度. 2. 解决方案: 源码: package com.dk.rf;

灵魂拷问:Java如何获取数组和字符串的长度?length还是length()?

限时 1 秒钟给出答案,来来来,听我口令:"Java 如何获取数组和字符串的长度?length 还是 length()?" 在逛 programcreek 的时候,我发现了上面这个主题.说实话,我当时脑海中浮现出了这样一副惊心动魄的画面: 面试官老马坐在我的对面,地中海式的发型令我敬佩有加.尽管略显疲惫,但他仍然自信地向我抛出了上面这个问题.稍稍迟疑了一下,我回答说:"数组用 length,字符串用 length 跟上小括号".老马不愧是面试中的高手,一瞬间就从我的

isspace 对含有中文 的字符串进行检查的时候表现不正常!?

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> //删除右边连续的空格, char* rtrim(char *pstr) { char *p = pstr; int len = strlen(pstr); p += len - 1; for(; isspace(*p) && len > 0; p--,len--) { *p = '

在Lua中计算含中文的字符串的长度

1 --[[ 2 @desc: 计算字符串字符个数 3 author:{author} 4 time:2017-12-29 16:08:11 5 --@inputstr: 源字符串 6 return 字符个数 7 ]] 8 function getStringCharCount(str) 9 local lenInByte = #str 10 local charCount = 0 11 local i = 1 12 while (i <= lenInByte) 13 do 14 local c

.net对含有中文的字符串进行MD5加密

MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider(); var Sign = BitConverter.ToString(MD5.ComputeHash(Encoding.GetEncoding("utf-8").GetBytes(result))).Replace("-", "").ToLower(); 将编码从gb2313改为utf-8.

PHP中判断字符串是否含有中文

<?php /** * [1.测试一] * 当$str = '中文测试'; 时输出"全部是汉字";当$str = '中a文3测试'; 时输出"不全是汉字"; * 应用说明:当某个地方要求用户输入的内容必须全部是中文时,这个就派上用场了. */ $str = '中文测试'; if (preg_match_all("/^([\x81-\xfe][\x40-\xfe])+$/", $str, $match)) { echo '全部是汉字'; }

php使用strlen()判断中文汉字字符串长度

php使用strlen()判断中文汉字字符串长度 对于含有中文情况,此时可以采用: iconv_strlen($str,"UTF-8"); iconv_strlen 是无论是何种编码,均能计算准确字符个数. aa

判断一个字符串中是否含有中文字符:

python中的encode和decode: 首先,在Python中字符串的表示是 用unicode编码.所以在做编码转换时,通常要以unicode作为中间编码. decode的作用是将其他编码的字符串转换成unicode编码,比如 a.decode('utf-8'),表示将utf-8编码的字符串转换成unicode编码 encode的作用是将unicode编码的字符串转换成其他编码格式的字符串,比如b.encode('utf-8'),表示将unicode编码格式转换成utf-8编码格式的字符串

判断字符串中是否含有中文

/**  *判断str中是否含有中文,有则返回true,否则返回false  *   * @param str  * @return  */ private  boolean isChineseCharacter(String str) { for (int i = 0; i < str.length(); i++) { if (str.substring(i, i + 1).matches("[\\u4e00-\\u9fbb]+")) { return true; } } re