zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    jQuery链式编程时修复断开的链
    只是一个用EF写的一个简单的分页方法而已
    asp.net Core 获取应用程序所在目录的2种方式
    FineUI使用记录
    C#判断一个string是否为数字
    MVC中利用ViewBag传递Json数据时的前端处理方法
    基于Ajax的文件上传使用FileInput插件(使用谷歌翻译作者的原文,大致意思是对的,自己把握)
    ansible中tag的用法
    rabbitMQ中vhost虚拟主机的理解
    一些比较好的链接
  • 原文地址:https://www.cnblogs.com/weyine/p/7613579.html
Copyright © 2011-2022 走看看