首页 > 编程 > Java > 正文

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

2019-11-26 14:54:16
字体:
来源:转载
供稿:网友

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

主要功能是实现判断字符串是否包含汉字 并且替换成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])

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表