博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java之endwith()方法以及正则表达式匹配中文
阅读量:4693 次
发布时间:2019-06-09

本文共 1709 字,大约阅读时间需要 5 分钟。

今天写程序的时候遇到判断需要使用多个if(){}else{}语句,观察了一下需要判断的条件,发现判断的条件可以变为对条件最后几个汉字的判断,就想用正则表达式来对汉字判断,写完后,想到可以用Java中String类的endwith()方法来对汉字实现匹配,例如

String str="世界你好我喜欢编程";

if(str.endwith("编程")){

  dosomething();

}else{

  dosomething();

}

 

以下是endwith()方法的源码:

public boolean startsWith(String paramString, int paramInt)  {    char[] arrayOfChar1 = this.value;    int i = this.offset + paramInt;    char[] arrayOfChar2 = paramString.value;    int j = paramString.offset;    int k = paramString.count;    if ((paramInt < 0) || (paramInt > this.count - k))      return false;    while (true)    {      k--;      if (k < 0)        break;      if (arrayOfChar1[(i++)] != arrayOfChar2[(j++)])        return false;    }    return true;  }  public boolean startsWith(String paramString)  {    return startsWith(paramString, 0);  }  public boolean endsWith(String paramString)  {    return startsWith(paramString, this.count - paramString.count);  }

char类型可以存储一个中文汉字,因为Java中使用的编码是Unicode(不选择任何特定的编码,直接使用字符在字符集中的编号,这是统一的唯一方法),

一个char类型占2个字节byte(16比特bit),所以放一个中文是没问题的。

 1:“字节”是byte,“位”是bit ;

 2: 1 byte = 8 bit ;

char 在中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。

java是用unicode来表示字符,中文字符的unicode就是2个字节。

 

 

 

正则表达式匹配中文:

  

package test1;import java.util.regex.Pattern;public class patterntest {    public static void main(String[] args)    {        String str = "编程世界你好,我爱编程";        System.out.println(Pattern.compile("[编][程]").matcher(str).find());    }}

在对String进行匹配时没有使用   str.matches("[编][程]"),如果使用则返回的式false。

  在Java API中对matches(String regx) 的返回说明:当且仅当此字符串匹配给定的正则表达式时,返回 true,也就是说,你给定的正则表达式需要与整个字符串匹配才会返回true,而现在的情景相当于在字符串中去查找有没有某个特定的字符串,所以不能使用matches(String regx)方法。

注意:在写匹配规则时,需要将匹配的汉字分别用[]隔开匹配。

 

转载于:https://www.cnblogs.com/qinshou/p/8367052.html

你可能感兴趣的文章
学前班
查看>>
数据结构化与保存
查看>>
如何避免在简单业务逻辑上面的细节上面出错
查看>>
Linux shell 命令判断执行语法 ; , && , ||
查看>>
vim代码格式化插件clang-format
查看>>
RTP Payload Format for Transport of MPEG-4 Elementary Streams over http
查看>>
Java环境变量设置
查看>>
【JBPM4】判断节点decision 方法3 handler
查看>>
filter 过滤器(监听)
查看>>
node启动时, listen EADDRINUSE 报错;
查看>>
杭电3466————DP之01背包(对状态转移方程的更新理解)
查看>>
kafka中的消费组
查看>>
python--注释
查看>>
SQL case when else
查看>>
SYS_CONTEXT 详细用法
查看>>
Pycharm配置autopep8让Python代码更符合pep8规范
查看>>
我的第一篇博客
查看>>
【C++算法与数据结构学习笔记------单链表实现多项式】
查看>>
C#垃圾回收机制
查看>>
31、任务三十一——表单联动
查看>>