Copie el código de código de la siguiente manera:
paquete com.whatycms.common.util;
importar org.apache.commons.lang.StringUtils;
/**
* <PRE>
* Proporcionar ancho completo -> medio ancho, medio ancho -> conversión de ancho completo para cadenas
*</PRE>
*/
clase pública BCConvert {
/**
* Los caracteres visibles en la tabla ASCII comienzan desde ! y el valor de compensación es 33 (decimal)
*/
carácter final estático DBC_CHAR_START = 33 // ¡Medio ancho!
/**
* Los caracteres visibles en la tabla ASCII terminan con ~ y el valor de desplazamiento es 126 (Decimal)
*/
carácter final estático DBC_CHAR_END = 126 // medio ancho ~
/**
* El ancho completo corresponde a los caracteres visibles de la tabla ASCII de! Comience con el valor de compensación 65281
*/
carácter final estático SBC_CHAR_START = 65281 // ¡Ancho completo!
/**
* El ancho completo corresponde a los caracteres visibles de la tabla ASCII hasta el final de ~, el valor de desplazamiento es 65374
*/
carácter final estático SBC_CHAR_END = 65374 // Ancho completo ~
/**
* El desplazamiento relativo entre los caracteres visibles en la tabla ASCII, excepto los espacios y los caracteres de ancho completo correspondientes.
*/
static final int CONVERT_STEP = 65248 // Intervalo de conversión de ancho completo y medio ancho
/**
* El valor de los espacios de ancho completo, que no cumplen con el desplazamiento relativo de ASCII, debe procesarse por separado.
*/
carácter final estático SBC_SPACE = 12288 // Espacio de ancho completo 12288;
/**
* El valor del espacio de medio ancho, que es 32 (decimal) en ASCII
*/
carácter final estático DBC_SPACE = ' '; // espacio de medio ancho
/**
* <PRE>
* Conversión de caracteres de ancho medio->conversión de caracteres de ancho completo
* Sólo procesa espacios, caracteres entre ! y ˜, ignora los demás
*</PRE>
*/
Cadena estática privada bj2qj (String src) {
si (fuente == nulo) {
devolver origen;
}
StringBuilder buf = nuevo StringBuilder(src.length());
char[] ca = src.toCharArray();
for (int i = 0; i < ca.length; i++) {
if (ca[i] == DBC_SPACE) { // Si es un espacio de medio ancho, reemplácelo directamente con un espacio de ancho completo
buf.append(SBC_SPACE);
} else if ((ca[i] >= DBC_CHAR_START) && (ca[i] <= DBC_CHAR_END)) { // Los caracteres son caracteres visibles entre !
buf.append((char) (ca[i] + CONVERT_STEP));
} else { // No realice ningún procesamiento para caracteres que no sean espacios y otros caracteres visibles en la tabla ascii
buf.append(ca[i]);
}
}
devolver buf.toString();
}
/**
* <PRE>
* Conversión de caracteres de ancho completo->caracteres de ancho medio
* ¡Maneje solo espacios de ancho completo, ancho completo! a caracteres entre ~ de ancho completo, y otros caracteres se ignoran
*</PRE>
*/
Cadena estática pública qj2bj (String src) {
si (fuente == nulo) {
devolver origen;
}
StringBuilder buf = nuevo StringBuilder(src.length());
char[] ca = src.toCharArray();
para (int i = 0; i < src.length(); i++) {
if (ca[i] >= SBC_CHAR_START && ca[i] <= SBC_CHAR_END) { // ¡Si en ancho completo! a ancho completo ~ rango
buf.append((char) (ca[i] - CONVERT_STEP));
} else if (ca[i] == SBC_SPACE) { // Si es un espacio de ancho completo
buf.append(DBC_SPACE);
} else { // ¡No maneje espacios de ancho completo, ancho completo! a caracteres de ancho completo ~ fuera del rango
buf.append(ca[i]);
}
}
devolver buf.toString();
}
público estático vacío principal (String [] argumentos) {
System.out.println(StringUtils.trimToEmpty(" a,b ,c "));
Cadena s = "nihaohk | nihehehe,. 78 7 ";
s=BCConvert.qj2bj(s);
System.out.println(s);
System.out.println(BCConvert.bj2qj(s));
}
}
La salida de la consola es la siguiente:
Copie el código de código de la siguiente manera:
abecedario
nihaohk | nihehe,. 78 7
nhhahk|| nihehe,. 78 7