• Java逻辑代码判断字数


    package com.wyl.test;
    public class WorldTrueCount {
    /**
    * 判断中文和标点符号的逻辑代码

    *对应规则:中文一对一,英语单词一对一,标点符号一对一,空格回车不算
    * @param value
    * @return
    */
    public static int String_length_chinese(String value) {
     int valueLength = 0;
     String chinese = "[\u4e00-\u9fa5]";
     String english = "[a-zA-Z]";
     for (int i = 0; i < value.length(); i++) {
      String temp = value.substring(i, i + 1);
      if(temp.equals(" ")){
       valueLength+=0;
      }else if (temp.matches(chinese)) {
       valueLength += 1;
      }else if(temp.matches(english)) {
       valueLength += 0;
      }else{
       valueLength += 1;
      }
     }
     return valueLength;
    }
    /**
    * 判断英文的逻辑代码
    * @param value
    * @return
    */
    public static int String_length_english(String value) {
     int valueLength = 0;
     String chinese = "[\u4e00-\u9fa5]";
     String english = "[a-zA-Z]";
     int k=0;
     for (int i = 0; i < value.length(); i++) {
      String temp = value.substring(i, i + 1);
      if(temp.equals(" ")){
       if(k==1){
        valueLength+=1;
        k=0;
       }
      valueLength+=0;
      }else if (temp.matches(chinese)) {
       if(k==1){
        valueLength+=1;
        k=0;
      }
      valueLength += 0;
      }else if(temp.matches(english)) {
       if(i==value.length()-1){//循环到最后一位是字母时长度也要加1
        valueLength += 1;
       }
       k = 1;
       valueLength += 0;
      }else{
       if(k==1){
        valueLength+=1;
        k=0;
      }
      valueLength += 0;//标点符号
      }
     }
     return valueLength;
    }


    }

    下面是本人写的一个简单的测试例子,很好使

    package com.wyl.test;

    public class Test {
     public static void main(String[] args) {
      String value="ss我的  w你o,d哈哈e s啦s";
      int length_chinese=WorldTrueCount.String_length_chinese(value);
      int length_english=WorldTrueCount.String_length_english(value); 
      System.out.println("中文和标点/"+length_chinese+"\n"+"英语单词/"+length_english);
      System.out.println("一共:"+(length_chinese+length_english));
      
     }
    }

    //下面是控制台的输出

    中文和标点/7
    英语单词/7
    一共:14

  • 相关阅读:
    如何强制360浏览器以极速模式打开页面
    如何解决Android SDK无法下载Package的问题(.net)
    Xamarin 安装步骤
    使用require.js和backbone实现简单单页应用实践
    HBuilder之初体验
    ClassLoader&双亲委派&类初始化过程
    List remove ConcurrentModificationException源码分析
    二十九、简谈设计模式
    二十八、Java基础--------正则表达式
    二十七、JDK1.5新特性---Annotation
  • 原文地址:https://www.cnblogs.com/weyine/p/7613579.html
Copyright © 2020-2023  润新知