精华内容
下载资源
问答
  • /*** 获取字符串长度,如果有中文,则每个中文字符计为2位* @param value 指定的字符串* @return 字符串长度*/public static int length(String value) {int valueLength = 0;String chinese = "[\u0391-\uFFE5]...

    /**

    * 获取字符串的长度,如果有中文,则每个中文字符计为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();

    }

    展开全文
  • /*** 判断姓名字符长度* 字符串为空返回0;有中文返回中文字符数;无中文返回2*@paramCustomerSn*@return*/privateInteger getNameLength(Integer CustomerSn){Integer sealWidth= 32;CustomerDto customerDto=...

    /*** 判断姓名字符长度

    * 字符串为空返回0;有中文返回中文字符数;无中文返回2

    *@paramCustomerSn

    *@return

    */

    privateInteger getNameLength(Integer CustomerSn){

    Integer sealWidth= 32;

    CustomerDto customerDto=customerService.getCustomerBySnForEsign(CustomerSn);

    String custSurname=customerDto.getCustSurname();

    String custName=customerDto.getCustName();

    Integer SurnameLen= this.count(custSurname);

    Integer NameLen= this.count(custName);

    Integer length= SurnameLen+NameLen;if(length>=0 && length<=4){

    sealWidth= length*16;

    }else if(length.equals(5) ||length.equals(6)){

    sealWidth= 3*16;

    }returnsealWidth;

    }/***

    * 统计字符串中中文,英文,数字,空格等字符个数

    *@paramstr 需要统计的字符串*/

    privateInteger count(String str) {int chCharacter = 0;//中文字符

    int enCharacter = 0;//英文字符

    int spaceCharacter = 0;//空格

    int numberCharacter = 0;//数字

    int otherCharacter = 0;//其他字符

    if (null == str || str.equals("")) {return 0;

    }for (int i = 0; i < str.length(); i++) {char tmp =str.charAt(i);if ((tmp >= 'A' && tmp <= 'Z') || (tmp >= 'a' && tmp <= 'z')) {

    enCharacter++;

    }else if ((tmp >= '0') && (tmp <= '9')) {

    numberCharacter++;

    }else if (tmp ==' ') {

    spaceCharacter++;

    }else if(isChinese(tmp)) {

    chCharacter++;

    }else{

    otherCharacter++;

    }

    }

    logger.info("字符串:" + str + " "+"中文字符有:" + chCharacter+"英文字符有:" + enCharacter+"数字有:" + numberCharacter+"空格有:" + spaceCharacter+"其他字符有:" +otherCharacter);if(chCharacter>0){returnchCharacter;

    }else{return 1;

    }

    }private boolean isChinese(charch) {//获取此字符的UniCodeBlock

    Character.UnicodeBlock ub =Character.UnicodeBlock.of(ch);//GENERAL_PUNCTUATION 判断中文的“号//CJK_SYMBOLS_AND_PUNCTUATION 判断中文的。号//HALFWIDTH_AND_FULLWIDTH_FORMS 判断中文的,号

    if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub ==Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub ==Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub ==Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS|| ub ==Character.UnicodeBlock.GENERAL_PUNCTUATION) {return true;

    }return false;

    }

    展开全文
  • 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

               

    浏览人工智能教程

    展开全文
  • 话不多说,上代码:/*** 获取字符串长度,如果有中文,则每个中文字符计为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判断中文字符串长度的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

    总结

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

    展开全文
  • } } 输出结果 true12 false8 java中判断字段真实长度(中文2个字符,英文1个字符)的方法 1、判断字符串是否为连续的中文字符(不包含英文及其他任何符号和数字): Regex.IsMatch(“中文”,”^[/u4e00-/u9fa5]”);...
  • java判断字符串长度

    2012-12-18 13:49:54
    * 获取字符串长度,如果有中文,则每个中文字符计为2位 * * @param value * 指定的字符串 * @return 字符串长度 */ public static int length(String value) { int valueLength =...
  • JAVA里面实现判断字符串长度,和截取字符串
  • //创建一个包public class TextLength {//描述字符串长度的类public static boolean isChineseChar(char c) throws Exception{//判断是否是一个汉字return String.valueOf(c).getBytes("GBK").length>1;//汉字的...
  • 话不多说,上代码:/*** 获取字符串长度,如果有中文,则每个中文字符计为2位* @param value 指定的字符串* @return 字符串长度*/public static int length(String value) {int valueLength = 0;String chinese ...
  • java判断中文字符串长度

    千次阅读 2017-01-09 17:05:58
    * 获取字符串长度,如果有中文,则每个中文字符计为2位 * @param value 指定的字符串 * @return 字符串长度 */ public static int length(String value) { int valueLength = 0; String chinese = "[\
  • 下面小编就为大家带来一篇java判断中文字符串长度的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Java 判断中文字符串长度

    千次阅读 2018-07-31 14:54:10
    ... import java.io.UnsupportedEncodingException; /** * 在Java中按字节获得字符串长度的两种方法 * */ public class App { public static void main( String[] args ) throws...
  • 但有时需要以字节单位获得字符串长度。例如:“123Java编程”按字节长度计算是11,而按Unicode计算则是7。为了获得11,需要根据字符的ASCII从头扫描,来获得具体的长度。如果是标准的字符,Ascii的范围是0至255,...
  • 以下是 Java 判断字符串是否为空的几种方法.方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低.方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法.方法三: Java SE 6.0 才开始提供的办法, 效率和方法二...
  • // 查看当前去掉字符是否为"." if( IsPoint.compareTo( "." ) == 0 ){ PointState = false; } DisplayString = DisplayString.substring( 0, ( DisplayString.length()-1 ) ); if( DisplayString.length() == 0 || ...
  • /** * 获取字符串长度,中文占一个字符,英文数字占半个字符 * * @param value 指定的字符串 * @return 字符串长度 */ public static double length(String value) {
  • [转载]struts s:if 截取字符串,判断字符串长度 (转载地址:请点击上面的链接)   [html] view plaincopy   &lt;%@ page language="java" import="java.util.*"...
  • package changYongLei; public class length_String {...// length() 返回此字符串长度。----int System.out.println(s1.length());//空格也算一个字符 // isEmpty() 当且仅当 length() 为 0 时返回 true。-----b

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,398
精华内容 559
关键字:

判断字符串长度java

java 订阅