精华内容
下载资源
问答
  • Java判断字符串长度

    千次阅读 2019-04-25 15:35:02
    Java判断字符串长度

    首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的。教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈~我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转到教程

                   

    今天一个程序出了问题,排查了半天才发现,原来是因为原来的一个计算汉字长度的代码出了问题:

     public static int getStringRealLength(String str) throws Exception{
      String str1 = new String(str.getBytes("GB2312"),"iso-8859-1");
      return str1.length();
    }

    汉字中有生僻字:“旸”,结果计算出长度为1。后来将GB2312改成GBK就可以了。因为字符可以正确算出长度。

    原帖地址:http://blog.csdn.net/soundfuture/article/details/11601653

    汉字所占byte问题请参考我的博文:http://blog.csdn.net/woshixuye/article/details/7907537

               

    浏览人工智能教程

    展开全文
  • JAVA里面实现判断字符串长度,和截取字符串
  • java判断字符串长度

    2012-12-18 13:49:54
    * 获取字符串长度,如果有中文,则每个中文字符计为2位 * * @param value * 指定的字符串 * @return 字符串长度 */ public static int length(String value) { int valueLength =...
    /**
    
    * 获取字符串的长度,如果有中文,则每个中文字符计为2位
    *
    * @param value
    * 指定的字符串
    * @return 字符串的长度
    */
    public static int length(String value) {
    int valueLength = 0;
    String chinese = "[\u0391-\uFFE5]";
    /* 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1 */
    for (int i = 0; i < value.length(); i++) {
    /* 获取一个字符 */
    String temp = value.substring(i, i + 1);
    /* 判断是否为中文字符 */
    if (temp.matches(chinese)) {
    /* 中文字符长度为2 */
    valueLength += 2;
    } else {
    /* 其他字符长度为1 */
    valueLength += 1;
    }
    }
    return valueLength;
    }
    展开全文
  • 下面小编就为大家带来一篇java判断中文字符串长度的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 但有时需要以字节单位获得字符串长度。例如:“123Java编程”按字节长度计算是11,而按Unicode计算则是7。为了获得11,需要根据字符的ASCII从头扫描,来获得具体的长度。如果是标准的字符,Ascii的范围是0至255,...

    由于Java是基于Unicode编码的,因此,一个汉字的长度为1,而不是2。但有时需要以字节单位获得字符串长度。例如:“123Java编程”按字节长度计算是11,而按Unicode计算则是7。为了获得11,需要根据字符的ASCII从头扫描,来获得具体的长度。如果是标准的字符,Ascii的范围是0至255,如果是汉字或其他全角字符,Ascii会大于255。 因此,可以编写如下的方法来获得以字节为单位的字符串长度。

    import java.io.UnsupportedEncodingException;
    
    public class test {
    	public static void main(String[] args) throws UnsupportedEncodingException{
    		String str = "123java编程";
    		System.out.println("length():" + str.length());
    		System.out.println("ASCII:" + getStringLength(str));
    		System.out.println("正则:" + getStringLengthRegex(str));  
            System.out.println("GBK:" + getStringLengthCode(str,"GBK"));  
            System.out.println("UTF-8:" + getStringLengthCode(str,"UTF-8"));  
    
    	}
    	
    	public static int getStringLength(String s){  
            int length = 0;  
            for(int i = 0; i < s.length(); i++)  
            {  
                int ascii = Character.codePointAt(s, i);  
                if(ascii >= 0 && ascii <=255)  
                    length++;  
                else  
                    length += 2;  
     
            }  
            return length;  
        }
    	
    	/*基本原理是将字符串中所有的非标准字符(双字节字符)替换成两个标准字符(**,或其他的也可以)。这样就可以直接例用length方法获得字符串的字节长度了*/  
        public static  int getStringLengthRegex(String s) {  
     
            s = s.replaceAll("[^\\x00-\\xff]", "**");  
            int length = s.length();  
            return length;  
        } 
        
        /*按特定的编码格式获取长度*/  
        public static int getStringLengthCode(String str, String code) throws UnsupportedEncodingException{  
            return str.getBytes(code).length;  
        } 
    }
    
    /*
    输出结果:
    
    length():9
    ASCII:11
    正则:11
    GBK:11
    UTF-8:13
    */
    
    展开全文
  • java判断中文字符串长度

    千次阅读 2017-01-09 17:05:58
    * 获取字符串长度,如果有中文,则每个中文字符计为2位 * @param value 指定的字符串 * @return 字符串长度 */ public static int length(String value) { int valueLength = 0; String chinese = "[\

    话不多说,上代码:

      /**
        * 获取字符串的长度,如果有中文,则每个中文字符计为2位
        * @param value 指定的字符串
        * @return 字符串的长度
        */
       public static int length(String value) {
           int valueLength = 0;
           String chinese = "[\u0391-\uFFE5]";
           /* 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1 */
           for (int i = 0; i < value.length(); i++) {
               /* 获取一个字符 */
               String temp = value.substring(i, i + 1);
               /* 判断是否为中文字符 */
               if (temp.matches(chinese)) {
                   /* 中文字符长度为2 */
                   valueLength += 2;
               } else {
                   /* 其他字符长度为1 */
                   valueLength += 1;
               }
           }
           return valueLength;
       }
    
    
      /**  
        * 得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为2,英文字符长度为1  
        * @param String s 需要得到长度的字符串  
        * @return int 得到的字符串长度  
        */   
       public static int length(String s) {  
           if (s == null)  
               return 0;  
           char[] c = s.toCharArray();  
           int len = 0;  
           for (int i = 0; i < c.length; i++) {  
               len++;  
               if (!isLetter(c[i])) {  
                   len++;  
               }  
           }  
           return len;  
       }  
    
    
       /**  
        * 得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为1,英文字符长度为0.5  
        * @param String s 需要得到长度的字符串  
        * @return int 得到的字符串长度  
        */   
       public static double getLength(String s) {  
        double valueLength = 0;    
           String chinese = "[\u4e00-\u9fa5]";    
           // 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1    
           for (int i = 0; i < s.length(); i++) {    
               // 获取一个字符    
               String temp = s.substring(i, i + 1);    
               // 判断是否为中文字符    
               if (temp.matches(chinese)) {    
                   // 中文字符长度为1    
                   valueLength += 1;    
               } else {    
                   // 其他字符长度为0.5    
                   valueLength += 0.5;    
               }    
           }    
           //进位取整    
           return  Math.ceil(valueLength);    
       }

    根据长度截取内容,区分中英文:

    /**
         * 截取字符长度,区分中英文
         *
         * @param abc 字符串内容
         * @param len 截取长度
         * @return
         */
        public static String subStr(String abc, int len) {
            if (TextUtils.isEmpty(abc) || len <= 0)
                return "";
            StringBuffer stringBuffer = new StringBuffer();
            int sum = 0;
            char[] chars = abc.toCharArray();
            for (int i = 0; i < chars.length; i++) {
                if (sum >= (len * 3)) {
                    break;
                }
                char bt = chars[i];
                if (bt > 64 && bt < 123) {
                    stringBuffer.append(String.valueOf(bt));
                    sum += 2;
                } else {
                    stringBuffer.append(String.valueOf(bt));
                    sum += 3;
                }
            }
            return stringBuffer.toString();
        }
    展开全文
  • Java 判断中文字符串长度

    万次阅读 2017-02-23 15:43:06
    * 在Java中按字节获得字符串长度的两种方法 * */ public class App { public static void main ( String[] args ) throws UnsupportedEncodingException { String str = "只" ; ...
  • 判断字符串长度

    千次阅读 2008-10-13 14:48:00
    判断字符的一些js代码收集:/** * /brief 求得一个字符串的ANSI字符串长度,这里中文字符算两个。 * /param value 传入的UNICODE字符串 * /return 返回字符串的ANSI字符串长度 */function ByteWordCount...
  • java 判断中文字符串长度

    千次阅读 2011-10-14 09:32:38
    * 获取字符串长度,中文占一个字符,英文数字占半个字符 * * @param value 指定的字符串 * @return 字符串长度 */ public static double length(String value) { double valueLength = 0;
  • 首先通过过滤记录 过滤空值(当然也...然后是JAVA组件: 代码: public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException { if (first) { first = false; /* TODO: ...
  • java判断字符串真实长度(中文2个字符,英文1个字符)的方法 介绍 做一个对外的“实时查询”接口,其中需要一个字段值(不少于4个字符) 测试代码 /** * 测试字符串字符长度 * @param args */ public static ...
  • Java 判断字符串的存储长度

    千次阅读 2016-03-11 14:56:21
    判断前台输入项的长度应该都会碰到String.length() 判断出来没有超出最大长度,存到数据库就超出长度的问题,oracle字符集是gbk的不太清楚,如果是UTF-8,中文是占三个字符的,所以要对中文进行特别判断。...
  • Java - 判断字符串是否为IP地址

    千次阅读 2020-08-06 12:07:34
    文章目录Java - 判断字符串是否为IP地址1、代码2、CommonUtils 工具类3、NumberUtils 工具类 Java - 判断字符串是否为IP地址 1、代码 主要就是这么几个条件 非空 长度符合 0.0.0.0 - 255.255.255.255 包含分隔符 ...
  • java判断字符串不为空和null的方法

    万次阅读 多人点赞 2018-03-22 14:32:37
    1、 空串”“是长度为0的字符串,它有自己的串长度(0)和内容(空),判断一个字符串为空的方法: if (str.length() == 0); 或 if (str.equals("")); 2、 null串表示目前没有任何对象与...
  • java判断字符串为空

    千次阅读 2019-03-05 17:50:05
    Java字符串与null的区别: 1、类型 null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ; ""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串...
  • Java获取字符串长度

    千次阅读 2019-08-14 16:02:49
    但有时需要以字节单位获得字符串长度。例如,“123abc长城”按字节长度计算是10,而按Unicode计算长度是8。为了获得10,需要从头扫描根据字符的Ascii来获得具体的长度。如果是标准的字符,Ascii的范围是0至255,...
  • java 判断字符串是否是中文

    热门讨论 2010-05-30 22:30:39
    java 判断字符串是否是中文 共总结了6种方法。。。。
  • Java字符串长度不够前面或后面补0
  • Java判断字符串是否为空

    万次阅读 2018-04-13 10:56:42
    思路:判断字符串是否为空,为空的标准是str==null或str.length()==0一.空字符串与null区别1、类型null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;""表示的...
  • <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request....
  • Java判断字符串中是否包含中英文标点符合 /** * 该函数判断一个字符串是否包含标点符号(中文英文标点符号)。 * 原理是原字符串做一次清洗,清洗掉所有标点符号。 * 此时,如果原字符串包含标点符号,那么清洗后...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 195,615
精华内容 78,246
关键字:

判断字符串长度java

java 订阅