انسخ رمز الكود كما يلي:
package com.whatycms.common.util;
import org.apache.commons.lang.StringUtils;
/**
* <ما قبل>
* توفير العرض الكامل -> نصف العرض، نصف العرض -> تحويل العرض الكامل للسلاسل
* </بري>
*/
الطبقة العامة BCConvert {
/**
* الحروف المرئية في جدول ASCII تبدأ من !، وقيمة الإزاحة هي 33 (عشري)
*/
static Final char DBC_CHAR_START = 33;
/**
* الأحرف المرئية في جدول ASCII تنتهي بـ ~، وقيمة الإزاحة هي 126 (عشري)
*/
static Final char DBC_CHAR_END = 126;
/**
* العرض الكامل يتوافق مع الأحرف المرئية لجدول ASCII من! ابدأ بقيمة الإزاحة 65281
*/
static Final char SBC_CHAR_START = 65281؛ // عرض كامل!
/**
* العرض الكامل يتوافق مع الأحرف المرئية لجدول ASCII حتى نهاية ~، وقيمة الإزاحة هي 65374
*/
static Final char SBC_CHAR_END = 65374; // عرض كامل ~
/**
* الإزاحة النسبية بين الأحرف المرئية في جدول ASCII باستثناء المسافات والأحرف ذات العرض الكامل المقابلة
*/
static Final int CONVERT_STEP = 65248; // الفاصل الزمني للتحويل بالعرض الكامل ونصف العرض
/**
* يجب معالجة قيمة المسافات ذات العرض الكامل، التي لا تتوافق مع الإزاحة النسبية من ASCII، بشكل منفصل
*/
static Final char SBC_SPACE = 12288؛ // مساحة كاملة العرض 12288
/**
* قيمة المسافة بنصف العرض، وهي 32 (عشري) في ASCII
*/
static Final char DBC_SPACE = ' '؛ // مسافة نصف العرض
/**
* <ما قبل>
* حرف بنصف العرض->تحويل حرف بالعرض الكامل
* يعالج فقط المسافات والأحرف الواقعة بين ! و˜، ويتجاهل الأحرف الأخرى
* </بري>
*/
سلسلة ثابتة خاصة bj2qj(سلسلة src) {
إذا (src == فارغة) {
عودة سرك؛
}
StringBuilder buf = new StringBuilder(src.length());
char[] ca = src.toCharArray();
لـ (int i = 0; i < ca.length; i++) {
if (ca[i] == DBC_SPACE) { // إذا كانت مسافة نصف العرض، فاستبدلها مباشرة بمسافة كاملة العرض
buf.append(SBC_SPACE);
} else if ((ca[i] >= DBC_CHAR_START) && (ca[i] <= DBC_CHAR_END)) { // الأحرف هي أحرف مرئية بين !
buf.append((char) (ca[i] + CONVERT_STEP));
} else { // لا تقم بأي معالجة للأحرف بخلاف المسافات والأحرف المرئية الأخرى في جدول ascii
buf.append(ca[i]);
}
}
إرجاع buf.toString();
}
/**
* <ما قبل>
* حرف كامل العرض-> تحويل حرف نصف العرض
* التعامل فقط مع المساحات ذات العرض الكامل، العرض الكامل! للأحرف الواقعة بين العرض الكامل ~، ويتم تجاهل الأحرف الأخرى
* </بري>
*/
سلسلة ثابتة عامة qj2bj(سلسلة src) {
إذا (src == فارغة) {
عودة سرك؛
}
StringBuilder buf = new StringBuilder(src.length());
char[] ca = src.toCharArray();
لـ (int i = 0; i < src.length(); i++) {
if (ca[i] >= SBC_CHAR_START && ca[i] <= SBC_CHAR_END) { // إذا كان بالعرض الكامل! إلى العرض الكامل ~ النطاق
buf.append((char) (ca[i] - CONVERT_STEP));
} else if (ca[i] == SBC_SPACE) { // إذا كانت مساحة كاملة العرض
buf.append(DBC_SPACE);
} else { // لا تتعامل مع مسافات كاملة العرض، كاملة العرض! إلى العرض الكامل ~ الأحرف خارج النطاق
buf.append(ca[i]);
}
}
إرجاع buf.toString();
}
public static void main(String[] args) {
System.out.println(StringUtils.trimToEmpty("a,b,c"));
String s = "nihaohk | nihehehe ,.78 7 ";
s=BCConvert.qj2bj(s);
System.out.println(s);
System.out.println(BCConvert.bj2qj(s));
}
}
إخراج وحدة التحكم كما يلي:
انسخ رمز الكود كما يلي:
أ، ب، ج
نيهاوهك |. 78 7
nhhahk|| nihehe,. 78 7