Скопируйте код кода следующим образом:
пакет com.whatycms.common.util;
импортировать org.apache.commons.lang.StringUtils;
/**
* <ПРЕД>
* Обеспечить преобразование полной ширины -> половинной ширины, половинной ширины -> полной ширины для строк.
* </ПРЕД>
*/
общественный класс BCConvert {
/**
* Видимые символы в таблице ASCII начинаются с !, а значение смещения равно 33 (десятичное число).
*/
статический финальный символ DBC_CHAR_START = 33 // Половина ширины!
/**
* Видимые символы в таблице ASCII заканчиваются символом ~, а значение смещения составляет 126 (десятичное число).
*/
статический финальный символ DBC_CHAR_END = 126 // полуширина~;
/**
* Полная ширина соответствует видимым символам таблицы ASCII из! Начните со значения смещения 65281.
*/
статический финальный символ SBC_CHAR_START = 65281 // Полная ширина!
/**
* Полная ширина соответствует видимым символам таблицы ASCII до конца ~, значение смещения 65374.
*/
статический финальный символ SBC_CHAR_END = 65374 // Полная ширина ~;
/**
* Относительное смещение между видимыми символами в таблице ASCII, за исключением пробелов и соответствующих символов полной ширины.
*/
static Final int CONVERT_STEP = 65248 // Интервал преобразования полной и половинной ширины;
/**
* Значение пробелов полной ширины, не соответствующее относительному смещению из ASCII, должно обрабатываться отдельно.
*/
статический финальный символ SBC_SPACE = 12288 // Полноразмерное пространство 12288;
/**
* Значение полуширины, равное 32 (десятичному) в ASCII.
*/
статический финальный символ DBC_SPACE = ' '; // пробел половинной ширины
/**
* <ПРЕД>
* Преобразование символов половинной ширины в символы полной ширины.
* Обрабатывает только пробелы и символы между ! и ˜, остальные игнорирует.
* </ПРЕД>
*/
частная статическая строка bj2qj(String src) {
если (источник == ноль) {
вернуть источник;
}
StringBuilder buf = новый StringBuilder(src.length());
char[] ca = src.toCharArray();
for (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 (String src) {
если (источник == ноль) {
вернуть источник;
}
StringBuilder buf = новый StringBuilder(src.length());
char[] ca = src.toCharArray();
for (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