清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
如下是用正则表达式实现的java全角转半角代码片段:
import java.util.regex.*;
public static String replaceDBC2SBC(String input) {
Pattern pattern = Pattern.compile("[\u3000\uff01-\uff5f]{1}");
Matcher m = pattern.matcher(input);
StringBuffer s = new StringBuffer();
while (m.find()) {
char c = m.group(0).charAt(0);
char replacedChar = c == ' ' ? ' ' : (char) (c - 0xfee0);
m.appendReplacement(s, String.valueOf(replacedChar));
}
m.appendTail(s);
return s.toString();
}
单元测试代码如下:
@Test
public void testReplaceQuanjiao() {
String text = "ab123w我们3jkjkdfdf444eeee";
String expected = "ab123w我们3jkjkdfdf444eeee";
String actual = replaceDBC2SBC(text);
assertEquals(expected, actual);
}