java 非法字符过滤 , 半角/全角替换
package mjorcen.netty.test1; import java.io.UnsupportedEncodingException; public class CharByteConverter { /**
* 全角转半角
*
* @param str
* @return
*
* @author mjorcen
* @email mjorcen@gmail.com
* @dateTime Sep 27, 2014 2:51:50 PM
* @version 1
*/
@Deprecated
public static final String toSingleByte(String str) {
StringBuffer outStrBuf = new StringBuffer(""); String Tstr = "";
byte[] b = null;
for (int i = 0; i < str.length(); i++) {
Tstr = str.substring(i, i + 1);
// 全角空格转换成半角空格
if (Tstr.equals(" ")) {
outStrBuf.append(" ");
continue;
}
try {
b = Tstr.getBytes("unicode");
// 得到 unicode 字节数据
if (b[2] == -1) {
// 表示全角
b[3] = (byte) (b[3] + 32);
b[2] = 0;
outStrBuf.append(new String(b, "unicode"));
} else {
outStrBuf.append(Tstr);
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } // end for.
return outStrBuf.toString(); } /**
* 半角转全角
*
* @param str
* @return
*
* @author mjorcen
* @email mjorcen@gmail.com
* @dateTime Sep 27, 2014 2:52:06 PM
* @version 1
*/
@Deprecated
public static final String toDoubleByte(String str) {
StringBuffer outStrBuf = new StringBuffer("");
String Tstr = "";
byte[] b = null;
for (int i = 0; i < str.length(); i++) {
Tstr = str.substring(i, i + 1);
if (Tstr.equals(" ")) {
// 半角空格
outStrBuf.append(Tstr);
continue;
}
try {
b = Tstr.getBytes("unicode");
if (b[2] == 0) {
// 半角
b[3] = (byte) (b[3] - 32);
b[2] = -1;
outStrBuf.append(new String(b, "unicode"));
} else {
outStrBuf.append(Tstr);
}
return outStrBuf.toString();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
return outStrBuf.toString();
} /**
* 半角转全角
*
* @param str
* @return
*
* @author mjorcen
* @email mjorcen@gmail.com
* @dateTime Sep 27, 2014 2:52:31 PM
* @version 1
*/
public static String ToSBC(String str) {
char c[] = str.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == ' ') {
c[i] = '\u3000';
} else if (c[i] < '\177') {
c[i] = (char) (c[i] + 65248); }
}
return new String(c);
} /**
* 全角转半角
*
* @param str
* @return
*
* @author mjorcen
* @email mjorcen@gmail.com
* @dateTime Sep 27, 2014 2:52:50 PM
* @version 1
*/
public static String ToDBC(String str) {
char c[] = str.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == '\u3000') {
c[i] = ' ';
} else if (c[i] > '\uFF00' && c[i] < '\uFF5F') {
c[i] = (char) (c[i] - 65248); }
}
String returnString = new String(c);
return returnString;
} public static void main(String[] args) {
long l = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
String str = "814乡道阿斯蒂芬123/.12,412看2家1快2看了就2;看了2叫看来+看来家12考虑就23;了3接口2了2会2,.水电费苦辣时间的2 125123123121209-021~!@#$%^&*()_";
String result = ToDBC(str);
ToSBC(result);
}
System.out.println(System.currentTimeMillis() - l);
} }
java 非法字符过滤 , 半角/全角替换的更多相关文章
-
提供对字符串的全角->;半角,半角->;全角转换
package com.opslab.util.algorithmImpl; import com.opslab.util.StringUtil; /** * 提供对字符串的全角->半角,半角- ...
-
“Error:(1, 1) java: 非法字符: &#39;\ufeff&#39;”错误解决办法
原因 用Windows记事本打开并修改.java文件保存后重新编译运行项目出现“Error:(1, 1) java: 非法字符: '\ufeff'”错误,如下图所示: 原来这是因为Window ...
-
idea Error:(1, 10) java: 需要class, interface或enum, 未结束的字符串文字,Error:(55, 136) java: 非法字符: \65533
1.未结束的字符串文字,Error:(55, 136) java: 非法字符: \65533 这些乱七吧八遭的错误如果很多的话 , 尝试 重新修改下生成目录 修改下语言等级 上述方法都不行 ,还报错 ...
-
Error:(1, 1) java: 非法字符: ‘\ufeff’
一.问题 用IDEA打开eclipse java项目编译时,出现以下错误: Error:(1, 1) java: 非法字符: '\ufeff' Error:(1, 10) java: 需要class, ...
-
java: 非法字符: \65279
IDEA导入项目后,编译的时候出现Error:(1, 1) java: 非法字符: \65279: 修改:找到编译报错的文件,用Notepad++工具,以UTF-8无BOM格式编码保存,然后重新编译即 ...
-
java: 非法字符: &#39;\ufeff&#39;
错误问题记录: Error:(1, 1) java: 非法字符: '\ufeff' Error:(1, 1) 错误: 需要class, interface或enum报错 问题发生时因为编码问题导致,如 ...
-
C#-判断字符是否是全角半角
C#字符串的全角是指用二个字节来表示的一个字符 C#字符串的半角是用一个字节来表示的一个字符 这样的话我们就可以用string.length 和System.text.Encoding.Default ...
-
c# 判断字符是否是全角, 获取字符串的字节数 , 获取字符串指定长度字节数的字符串
1 Encoding.Default.GetByteCount(checkString); =2 全角 =1 半角 /// <summary> /// 获取字符串的字节长度 /// &l ...
-
windows文件名非法字符过滤检测-正则表达式
过滤文件名非法字符 windows现在已知的文件名非法字符有 \ / : * ? " < > | var reg = new RegExp('[\\\\/:*?\"&l ...
随机推荐
-
shared_ptr:资源管理利器
如果你还在使用传统的C++,那么可以肯定堆内存的管理让你头痛过!在传统的C++领域,堆内存管理上我们能借用的现成工具就只有auto_ptr.但是很不幸用auto_ptr管理堆内存简直就是个错误.aut ...
-
Office 2013 Pro Plus Vol激活
先确认自己是office2013 vol(大客户版),然后cmd(管理员)里面运行如下命令: cd "C:\Program Files\Microsoft Office\Office15&q ...
-
[转]解决win8.1右键菜单出现在左边
1.在控制面板中找到“Tablet PC 设置”窗口,选择“其他”选项卡. 2.在“左右手使用习惯”下,点选“惯用左手”,确定. •如果win8.1的控制面板里找不到Tablet PC 设置 •可以在 ...
-
编译cwm-recovery(含部分修改步骤)[转]
1. 同步cm10.1的源码,具体操作请百度之-- 2. 打开终端,到源码目录下: cd Android/cm10.1 //我的源码目录 3. 如果不想使用cm10 ...
-
vue错误和解决方法
1.Error in render function: "TypeError: Cannot read property 'matched' of undefined 原因:之前不知道,在引 ...
-
我的hibernate学习记录(二)
通过上一篇文章我的hibernate学习记录(一)基本上的入门了hibernate,但是,里面还有还多东西是通过迷迷糊糊的记忆,或者说copy直接弄进去的,所以这篇文章就需要对上篇的一些文件.对象进行 ...
-
不使用synchronized和lock 锁实现线程安全单例
单例实现方式一,锁机制 public class Singleton { private static Singleton singleton=null; public Singleton() { } ...
-
Confluence 6 配置 简易信息聚合(RSS)
一个 Confluence 的管理员可以配置下面的 RSS 特性: Confluence 针对 RSS 聚合返回的最大项目数量. Confluence 针对 RSS 聚合允许的最大时间周期. 上面两个 ...
-
java.lang.NoClassDefFoundError: org/springframework/boot/context/embedded/FilterRegistrationBean
昨天还好好的, 今天我的spring boot 项目就不能正常运行了! 出现: 018-07-06 10:01:41.776 WARN [mq-service,,,] 7 --- [ main] at ...
-
TX Textcontrol 使用总结一模板
以下内容纯属个人使用感想,如有问题,还望讲解!!! 简介与使用感想: TX Text Control是一套功能丰富的文字处理控件,它以可重复使用控件的形式为开发人员提供了Word中常用的文字处理功能, ...