الكود عملي للغاية، ولا يوجد أي هراء هنا، فقط قم بتقديمه
وتتمثل الوظيفة الرئيسية في تحديد ما إذا كانت السلسلة تحتوي على أحرف صينية واستبدالها بـ ASCLL
سلسلة ثابتة خاصة regEx = "[//u4e00-//u9fa5]"; /** * تحديد ما إذا كانت السلسلة تحتوي على أحرف صينية واستبدالها بـ ASCLL * * @param str_para * @return str_result */ سلسلة ثابتة خاصة isChinese_Replace( String str_para ) { Pattern p = Pattern.compile( regEx ); String str_result = str_para; str_1 = ""; String str_data[] = null; String str_return_reslut = ""; if ( str_result != null && str_result().length() > 0 ) {try { str_data = str_result.split( ""); for ( int i = 0; i < str_data.length; i++ ) { Matcher m = p.matcher( str_data[i] ); /* Ld(str_data[i]); int count = 0; if ( m.find() ) { count++; getBytes( "GBK" ); str_0 = Integer.toHexString( b[0] ); ); } قبض على (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;عرض توضيحي للفئة العامة {static String regEx = "[/u4e00-/u9fa5]";نمط ثابت pat = Pattern.compile(regEx);فراغ ثابت عام main(String[] args) {String input = "عالم الجحيم!";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 = صحيح؛}إرجاع flg؛}
وأخيرًا، نرفق نطاق ترميزات Unicode لمختلف الأحرف:
* الحروف الصينية: [0x4e00,0x9fa5] (أو العلامة العشرية [19968,40869])
* الرقم: [0x30,0x39] (أو الرقم العشري [48، 57])
*الأحرف الصغيرة: [0x61,0x7a] (أو العلامة العشرية [97، 122])
* الحروف الكبيرة: [0x41,0x5a] (أو العلامة العشرية [65، 90])