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

  • 相关阅读:
    sfs2x 连接 mongodb
    java websocket
    webstorm 4.0 注册码
    解决 sfs2 admin tool 找不到扩展
    window 注册表五大类
    opengl 学习第二日
    java google Protobuf
    扩展 java sencha touch PhonegapPlugin
    sencha touch2 kryonet socket phonegap 通信 作者:围城
    sencha touch2 layout 笔记
  • 原文地址:https://www.cnblogs.com/weyine/p/7613579.html
Copyright © 2011-2022 走看看