Copie o código do código da seguinte forma:
pacote com.whatycms.common.util;
importar org.apache.commons.lang.StringUtils;
/**
* <PRÉ>
* Fornece largura total -> meia largura, meia largura -> conversão de largura total para strings
* </PRÉ>
*/
classe pública BCConvert {
/**
* Os caracteres visíveis na tabela ASCII começam em !, e o valor de deslocamento é 33 (Decimal)
*/
char final estático DBC_CHAR_START = 33; // Meia largura!
/**
* Os caracteres visíveis na tabela ASCII terminam com ~ e o valor de deslocamento é 126 (Decimal)
*/
char final estático DBC_CHAR_END = 126; // meia largura ~
/**
* A largura total corresponde aos caracteres visíveis da tabela ASCII! Comece com valor de deslocamento 65281
*/
caractere final estático SBC_CHAR_START = 65281; // Largura total!
/**
* A largura total corresponde aos caracteres visíveis da tabela ASCII até o final de ~, o valor de deslocamento é 65374
*/
caractere final estático SBC_CHAR_END = 65374; // Largura total ~
/**
* O deslocamento relativo entre caracteres visíveis na tabela ASCII, exceto espaços e os caracteres de largura total correspondentes
*/
static final int CONVERT_STEP = 65248; // Intervalo de conversão de largura total e meia largura
/**
* O valor dos espaços de largura total, que não obedece ao deslocamento relativo do ASCII, deve ser processado separadamente
*/
static final char SBC_SPACE = 12288; // Espaço de largura total 12288;
/**
* O valor do espaço de meia largura, que é 32 (Decimal) em ASCII
*/
char final estático DBC_SPACE = ' '; // espaço de meia largura
/**
* <PRÉ>
* Caractere de meia largura-> conversão de caracteres de largura total
* Processa apenas espaços, caracteres entre ˜ e ˜, ignora outros!
* </PRÉ>
*/
String estática privada bj2qj(String src) {
if (src == nulo) {
retornar fonte;
}
StringBuilder buf = new StringBuilder(src.length());
char[] ca = src.toCharArray();
for (int i = 0; i < ca.length; i++) {
if (ca[i] == DBC_SPACE) { // Se for um espaço de meia largura, substitua-o diretamente por um espaço de largura total
buf.append(SBC_SPACE);
} else if ((ca[i] >= DBC_CHAR_START) && (ca[i] <= DBC_CHAR_END)) { // Caracteres são caracteres visíveis entre !
buf.append((char) (ca[i] + CONVERT_STEP));
} else { // Não faça nenhum processamento para caracteres além de espaços e outros caracteres visíveis na tabela ascii
buf.append(ca[i]);
}
}
retornar buf.toString();
}
/**
* <PRÉ>
* Caractere de largura total-> conversão de caracteres de meia largura
* Lide apenas com espaços de largura total, largura total! para caracteres entre largura total ~ e outros caracteres são ignorados
* </PRÉ>
*/
String estática pública qj2bj(String src) {
if (src == nulo) {
retornar fonte;
}
StringBuilder buf = new 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) { // Se em largura total! para largura total ~ faixa
buf.append((char) (ca[i] - CONVERT_STEP));
} else if (ca[i] == SBC_SPACE) { // Se for um espaço de largura total
buf.append(DBC_SPACE);
} else { //Não manipule espaços de largura total, largura total! para ~ caracteres de largura total fora do intervalo
buf.append(ca[i]);
}
}
retornar 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));
}
}
A saída do console é a seguinte:
Copie o código do código da seguinte forma:
abc
nihaohk | nihehe,. 78 7
nhhahk|| nihehe,. 78 7