Kopieren Sie den Codecode wie folgt:
Paket com.whatycms.common.util;
import org.apache.commons.lang.StringUtils;
/**
* <PRE>
* Bieten Sie die Konvertierung voller Breite -> halbe Breite, halbe Breite -> volle Breite für Zeichenfolgen
* </PRE>
*/
öffentliche Klasse BCConvert {
/**
* Sichtbare Zeichen in der ASCII-Tabelle beginnen mit ! und der Offsetwert ist 33 (Dezimal)
*/
static final char DBC_CHAR_START = 33; // Halbe Breite!
/**
* Die sichtbaren Zeichen in der ASCII-Tabelle enden mit ~ und der Offsetwert ist 126 (Dezimal)
*/
static final char DBC_CHAR_END = 126; // halbe Breite~
/**
* Volle Breite entspricht den sichtbaren Zeichen der ASCII-Tabelle! Beginnen Sie mit dem Offsetwert 65281
*/
static final char SBC_CHAR_START = 65281; // Volle Breite!
/**
* Die volle Breite entspricht den sichtbaren Zeichen der ASCII-Tabelle bis zum Ende von ~, der Offsetwert beträgt 65374
*/
static final char SBC_CHAR_END = 65374; // Volle Breite ~
/**
* Der relative Versatz zwischen sichtbaren Zeichen in der ASCII-Tabelle außer Leerzeichen und den entsprechenden Zeichen voller Breite
*/
static final int CONVERT_STEP = 65248; // Konvertierungsintervall voller und halber Breite
/**
* Der Wert von Leerzeichen voller Breite, der nicht dem relativen Offset von ASCII entspricht, muss separat verarbeitet werden
*/
static final char SBC_SPACE = 12288; // Leerzeichen in voller Breite 12288
/**
* Der Wert des halbbreiten Leerraums, der in ASCII 32 (Dezimal) beträgt
*/
static final char DBC_SPACE = ' '; // Leerzeichen halber Breite
/**
* <PRE>
* Konvertierung von Zeichen halber Breite in Zeichen voller Breite
* Verarbeitet nur Leerzeichen und Zeichen zwischen ! und ˜, ignoriert andere
* </PRE>
*/
privater statischer String bj2qj(String src) {
if (src == null) {
return src;
}
StringBuilder buf = new StringBuilder(src.length());
char[] ca = src.toCharArray();
for (int i = 0; i < ca.length; i++) {
if (ca[i] == DBC_SPACE) { // Wenn es sich um ein Leerzeichen halber Breite handelt, ersetzen Sie es direkt durch ein Leerzeichen voller Breite
buf.append(SBC_SPACE);
} else if ((ca[i] >= DBC_CHAR_START) && (ca[i] <= DBC_CHAR_END)) { // Zeichen sind sichtbare Zeichen zwischen ! und ~
buf.append((char) (ca[i] + CONVERT_STEP));
} else { // Führen Sie keine Verarbeitung für andere Zeichen als Leerzeichen und andere sichtbare Zeichen in der ASCII-Tabelle durch
buf.append(ca[i]);
}
}
return buf.toString();
}
/**
* <PRE>
* Konvertierung von Zeichen voller Breite in Zeichen halber Breite
* Behandeln Sie nur Leerzeichen in voller Breite, in voller Breite! auf Zeichen zwischen ~ in voller Breite und andere Zeichen werden ignoriert
* </PRE>
*/
öffentlicher statischer String qj2bj(String src) {
if (src == null) {
return src;
}
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) { // Wenn in voller Breite! bis zur vollen Breite ~ Bereich
buf.append((char) (ca[i] - CONVERT_STEP));
} else if (ca[i] == SBC_SPACE) { // Wenn es sich um ein Leerzeichen voller Breite handelt
buf.append(DBC_SPACE);
} else { //Keine Leerzeichen voller Breite verarbeiten, volle Breite! auf ~ Zeichen in voller Breite außerhalb des Bereichs
buf.append(ca[i]);
}
}
return 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));
}
}
Die Konsolenausgabe lautet wie folgt:
Kopieren Sie den Codecode wie folgt:
ABC
nihaohk |. nihehe,. 78 7
nhhahk|| nihehe,. 78 7