java实现检测是否字符串中包含中文_java

代码非常实用,这里就不错废话,直接奉上

主要功能是实现判断字符串是否包含汉字 并且替换成ASCLL

private static String regEx = "[\\u4e00-\\u9fa5]";

  /**
   * 判断字符串是否包含汉字 并且替换成ASCLL
   *
   * @param str_para
   * @return str_result
   */
  private static String isChinese_Replace( String str_para )
  {
    Pattern p      = Pattern.compile( regEx );
    String str_result   = str_para;
    String str_0      = "";
    String str_1      = "";
    String str_data[]   = null;
    String str_return_reslut  = "";
    if ( str_result != null && str_result.trim().length() > 0 )
    {
      try {
        str_data = str_result.split( "" );
        for ( int i = 0; i < str_data.length; i++ )
        {
          Matcher m = p.matcher( str_data[i] );
          /* L.d(str_data[i]); */
          int count = 0;
          if ( m.find() )
          {
            count++;
            str_result   = m.group( 0 );
            byte[] b    = str_result.getBytes( "GBK" );
            str_0      = Integer.toHexString( b[0] );
            str_1      = Integer.toHexString( b[1] );
            str_return_reslut  = str_return_reslut + "/" + conver10( str_0 ) + conver10( str_1 ) + "/";
          } else {
            str_return_reslut = str_return_reslut + str_data[i];
          }
        }
      } catch ( NumberFormatException e ) {
        e.printStackTrace();
      } catch ( UnsupportedEncodingException e ) {
        e.printStackTrace();
      }
    } else {
      return(str_return_reslut);
    }
    return(str_return_reslut);
  }
  /* 字符串转换十进制 */
  public static int conver10( String str_0 )
  {
    return(Integer.parseInt( str_0.substring( str_0.length() - 2, str_0.length() ), 16 ) );
  }

我们来看个稍微简单些的代码,一些需求不高的地方可以用到

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class demo {
static String regEx = "[\u4e00-\u9fa5]";
static Pattern pat = Pattern.compile(regEx);
public static void main(String[] args) {
String input = "Hell world!";
System.out.println(isContainsChinese(input));
input = "hello world";
System.out.println(isContainsChinese(input));
}

public static boolean isContainsChinese(String str)
{
Matcher matcher = pat.matcher(str);
boolean flg = false;
if (matcher.find())  {
flg = true;
}
return flg;
}

最后我们附上各种字符的unicode编码的范围:
     * 汉字:[0x4e00,0x9fa5](或十进制[19968,40869])
     * 数字:[0x30,0x39](或十进制[48, 57])
     *小写字母:[0x61,0x7a](或十进制[97, 122])
     * 大写字母:[0x41,0x5a](或十进制[65, 90])

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java 包含字符串、java判断包含字符串、java是否包含字符串、java正则包含某字符串、java包含某个字符串,以便于您获取更多的相关知识。

时间: 2024-10-24 00:30:34

java实现检测是否字符串中包含中文_java的相关文章

Lua判断字符串中包含中文字符的方法和计算字符串宽度函数分享_Lua

一.判断字符串中包含中文字符的方法 遍历数组,对每个字节使用string.byte(),发现有大于127的,就是汉字,可以参照下面的代码. 二.计算字符串宽度函数 复制代码 代码如下: -- 计算字符串宽度   local str = "Jimmy: 你好,世界!" local fontSize = 20 local lenInByte = #str local width = 0   for i=1,lenInByte do     local curByte = string.by

编写PHP程序检查字符串中的中文字符个数的实例分享_php实例

有时候我们需要计算一个字符串中包含的字数,对于纯英文字符串,字数等于字符串长度,用 strlen函数即可获得,但如果字符串中包含中文怎办?mb_strlen可以实现,但不幸没装扩展,那就自己实现一下吧. php有一个扩展一般是必装的,我们可以使用mb_strlen来获取字符串中的字数,用法一般如下: $len = mb_strlen("你是我的小苹果","utf-8"); 如愿获得字符串长度:7. 如果没装mb扩展呢?自己实现一下吧. 我们要先明白一个事实:字符串是

java的package名称中包含中文会有什么影响

问题描述 java的package名称中包含中文会有什么影响 创建了一个java的package包含**中文名称**,然后又创建了一个java文件也是**中文的**,在eclipse上运行了下,一切正常. 想了解下,这种在实际的部署应用后会有些什么样的风险 为什么要使用中文大家就不要问了,业务需要减少开发工作量 解决方案 要看目标平台,一些平台不支持非标准ansi字符,就会出错,另一些不会.这和操作系统.jvm.区域设置等都有关系.总之,结论是不可预见.既然你必须用中文,因为你的团队用英文就要"

请问如何替换字符串中大写中文数字为阿拉伯数字?

问题描述 我有几个字符串,如 我有十块钱,你有二十三块钱,他有二元钱.我想转换成 "我有10块钱,你有23块钱,他有2元钱.",请问如何转换,也就是如何把字符串中大写中文数字转换成阿拉伯数字.大写中文数字可限制在一到九百九十九之间.谢谢! 解决方案 package test;import java.text.MessageFormat;import java.util.ArrayList;import java.util.HashMap;import java.util.LinkedH

求一字符串中包含某字符串的方法

问题描述 判断父字符串中包含子字符串 解决方案 解决方案二:KMP算法!解决方案三:string.substring解决方案四:"aaabb".indexof("aaa");或者"aaabb".contains("aaa");解决方案五:java中可以借助String类来判断是否包含.contains方法,indexOf方法,都可以判断啊!解决方案六:要是面试题目的话肯定不会让调用String的封装方法的

java如何判断一个字符串中是否有@符号

问题描述 java如何判断一个字符串中是否有@符号 java如何判断一个字符串中是否有@符号 用if语句怎么判断 解决方案 if(str.contains("@")) 解决方案二: Java中怎样判断一个字符串是否为数字java 判断一个字符串中的字符是否唯一java判断一个字符串是否为空的方法 解决方案三: 用正则表达式就可以做到吧, String regex="w+@w+(.w{2,3})*.w{2,3}" 这个是用正则表达式判断输入邮箱格式的 用str.mat

jsp-EL表达式的比较字符串中包含运算符怎么办

问题描述 EL表达式的比较字符串中包含运算符怎么办 ${( cpb.cppp == pp.ppmc)?'selected=""selected""':'' }这里的${cpb.cppp} = ""KUKa/顾家家居"", ${pp.ppmc}也等于"KUKa/顾家家居" 因为字符串中包含"/"符号,所有页面读取时出错.js报rror: Syntax error unrecognized

java的action里字符串中含有一个“=”,传到前台后,变为“\u003d”

问题描述 java的action里字符串中含有一个"=",传到前台后,变为"u003d",为什么会变成这样的字符呢? 问题补充:7454103 写道 解决方案 前台?<html> <head> <title>My JSP 'test.jsp' starting page</title> <script language="javascript"> var str="u003d&

js 用户名,中文,双字节,字符串中含有中文正则表达式

网页特效 用户名,中文,双字节,字符串中含有中文正则表达式 <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.111cn.net/1999/xhtml"> <head> &