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

  • 相关阅读:
    Kubernetes 集成研发笔记
    Rust 1.44.0 发布
    Rust 1.43.0 发布
    PAT 甲级 1108 Finding Average (20分)
    PAT 甲级 1107 Social Clusters (30分)(并查集)
    PAT 甲级 1106 Lowest Price in Supply Chain (25分) (bfs)
    PAT 甲级 1105 Spiral Matrix (25分)(螺旋矩阵,简单模拟)
    PAT 甲级 1104 Sum of Number Segments (20分)(有坑,int *int 可能会溢出)
    java 多线程 26 : 线程池
    OpenCV_Python —— (4)形态学操作
  • 原文地址:https://www.cnblogs.com/weyine/p/7613579.html
Copyright © 2011-2022 走看看