`
FlyAway2
  • 浏览: 110419 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

检查中文字符小程序

 
阅读更多

写各种java或jsp的时候,一不小心就会多写了一些中文的标点字符,特别是jsp中的javascript,里面出了错都没有提示,郁闷的要死。

 

心想要是有这么一个检查中文字符小程序就好了。网上找了很久,都没找到自己想要的。于是自己写:

 

注:主要是检查',' ,'。' ,'、',';','’','‘','”','“',':' 这些字符,不让它秘密的隐藏在jsp中

 

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;


public class UnsupportedCharCheck{

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		try {
			test("D:/helloworld/index.jsp");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void test(String articleLoction) throws IOException {
		File article = new File(articleLoction);
		char[] unsupportedChars = { ',' ,'。' ,'、',';','’','‘','”','“',':'};//' '不能表示中文空格?那..
		Map unsupportedCharsAndLineNo = new HashMap();
		Map unsupportedCharsFound = new HashMap();
		int lineNum = 0;
		int commentedNum = 0;
		int multiCommentBegin = -1;//标注多行注释<!--的起始位置
		int multiCommentEnd = -1;//标注多行注释<!--的起始位置
		boolean mc = false;
		boolean problem_flag = false;
		BufferedReader bf = new BufferedReader(new FileReader(article));
		
		String lineStr = "";
		while((lineStr=bf.readLine())!=null){
			lineNum++;
			if(lineStr.startsWith("//"))continue;

			if(mc)
				if(((multiCommentEnd=lineStr.indexOf("-->")))==-1){
					continue;
				}else {
					lineStr = lineStr.substring(multiCommentEnd+3);
					mc = false;
				}
			
			while((multiCommentBegin=lineStr.indexOf("<!--"))!=-1){
				if(((multiCommentEnd=lineStr.indexOf("-->")))!=-1){					
					lineStr = lineStr.substring(0, multiCommentBegin)+lineStr.substring(multiCommentEnd+3);
					mc = false;
				}else {
					lineStr = lineStr.substring(0, multiCommentBegin);
					mc = true;
				}
			}
			
			if(mc)
				if(((multiCommentEnd=lineStr.indexOf("-->")))==-1){
					continue;
				}else {
					lineStr = lineStr.substring(multiCommentEnd+3);
					mc = false;
				}
			//System.out.println(lineStr);
			
			
			int commentBegin = 0; 
			String errStr = "";
			for(int i=0;i<lineStr.length();i++) {
				if(commentBegin==2)break;
				if(multiCommentBegin!=-1);
				char c = lineStr.charAt(i);
				if(c=='/'){
					commentBegin += 1;
					if(commentBegin == 2) {
						 commentedNum ++;
						 commentBegin = 0;
					}
					continue;
				}else if( commentBegin == 1){
					commentBegin = 0;
				}
				
				for(int j=0;j<unsupportedChars.length;j++) {
					if(c==unsupportedChars[j]) {
						if(errStr.length()==0) {
							errStr += c;
						}else {
							errStr += "|" + c;
						}
						
						if(!unsupportedCharsFound.containsKey(c)) {
							unsupportedCharsFound.put(c,lineNum);
							//System.out.println("FOUND UNSUPPORTED CHAR: '" +  c  +"' AT LINE " +lineNum);
						}else{
							//System.out.println("FOUND UNSUPPORTED CHAR: '" +  c  +"' AT LINE " +lineNum);
						}
						unsupportedCharsAndLineNo.put(lineNum, c);
						break;
					}
				}
			}
			if(errStr.length()!=0) {
				problem_flag = true;
				System.out.println("FOUND UNSUPPORTED CHARS: " +  errStr  +" AT LINE " +lineNum);
			}
		}
		if(!problem_flag)System.out.println("CONGRATULATIONS!  NO UNSUPPORTED CHARS FOUND~~");
		
		
	}
}

 

分享到:
评论

相关推荐

    检查字符串中字符出现的次数(包含汉字)

    检查你的字符串中每个字符(包括汉字)出现的次数 。

    微信-汉字拼音首字母排序选择.rar

    微信小程序-汉字拼音首字母排序选择,包括了一个微信小程序富文本解析函数库,收录字符的Unicode编码范围为19968至40869,汉字拼音首字母列表 本列表包含了20902个汉字,用于配合 ToChineseSpell,改动为判定输入数组...

    编写PHP程序检查字符串中的中文字符个数的实例分享

    strlen函数即可获得,但如果字符串中包含中文怎办?mb_strlen可以实现,但不幸没装扩展,那就自己实现一下吧。 php有一个扩展一般是必装的,我们可以使用mb_strlen来获取字符串中的字数,用法一般如下: $len = mb_...

    C# 检测括号匹配的问题

    C#版的检测括号是否匹配的问题,可以检测出从键盘输入的一串字符,其中有字母、数字和其它一些特殊符号,这一串字符中有小括号,中括号,通过本程序,可以判断出输入入的字符串中的小、中括号是否匹配,是缺少左小、...

    单片机课程设计报告--LCD1602字符液晶滚动演示程序.doc

    单片机原理与应用 综合实验报告 LCD1602字符液晶滚动演示程序 专业班级: 姓 名: 学 号: 时 间: 指导教师: 2012年 05月 23日 LCD1602字符液晶滚动演示程序 摘要:本设计以单片机作为LCD液晶显示系统控制器为...

    第三代移动WEB内核小程序风口-逐浪CMS2 x3.9.3全面发布

    ■增加小程序模块,快速开发小程序。 ■增加:云端建站功能,全新的在线拖拽建站。 ■增加:数据表自由导出为Excel(扩展--数据导出为Excel),自由导出您的任何意表单数据,对于站长业说可以更好的管理自主数据。 ...

    根据中文首字生成图片如头像等场景需求

    可以根据中文首字生成图片的拓展插件,支持php、thinkphp等全系列后端语言使用。 满足不同网站、app、小程序等应用场景的图片生成需求,支持png、jpg等文件的生成。

    基于matlab的车牌定位系统(两种分割算法:边缘分割以及颜色分割+模板匹配法+亲测可用)

    (车牌定位程序注释)、(车牌图片库)、(车牌模板库:包含阿拉伯数字、中文汉字字符、英文字符)。 车牌预处理、车牌定位、车牌字符分割、车牌字符识别(模板匹配法,目前最常用的,使用简单)。含有程序演示视频...

    ADO.NET 连接数据库字符串小结(Oracle、SqlServer、Access、ODBC)

    ADO.NET 连接到 SQL Server SQL Server .NET Framework 数据提供程序支持类似于 OLE DB (ADO) 连接字符串格式的连接字符串格式。 代码如下:using (SqlConnection connection = new SqlConnection(connectionString))...

    DELPHI专题文档-程序应用

    检测程序是否运行 用Delphi3编写"共享软件" 如何从任务栏上隐藏应用程序的按纽 如何在Delphi程序中支持文件拖放 如何运行一个程序直到它结束 用De1phi编制汉字录入能力测试软件 一个实用的Delphi屏幕拷贝程序...

    DELPHI专题--程序应用

    检测程序是否运行 用Delphi3编写"共享软件" 如何从任务栏上隐藏应用程序的按纽 如何在Delphi程序中支持文件拖放 如何运行一个程序直到它结束 用De1phi编制汉字录入能力测试软件 一个实用的Delphi屏幕拷贝程序...

    易语言编程系统PDF完整版(4/4)

    支持中文格式日期和时间处理、汉字发音处理、全半角字符处理、人民币金额处理、农历日期转换等。 与国际接轨 和其它编程语言互溶互通,学习掌握易语言对掌握其它编程语言具有桥梁作用。 ★编程理念互通。支持完全...

    wbx.rar_五笔_五笔输入法_反编译_汉字 编码_输入法

    一组处理五笔输入法码表文件的小程序 chpy.c 将中文字符串自动转换成拼音的形式. 将中文的文件名转换成拼音的文件名- PY_FILE为WIN95全拼输入法反转换生成的拼音编码文件 delsingle.c 删除包含单个汉字的行 gb2312....

    PHP函数库,PHP函数大全,PHP函数实例,PHP函数手册,PHP5函数库实例

    curl获取远程文件内容 ...计算字符串的长度(汉字按照两个字符计算) 设为主页 转换附件大小单位 转静态函数 遍历文件夹文件 采集网络数据 随机字符串 验证码 验证码类 验证输入的邮件地址是否合法

    PHP程序开发范例宝典III

    实例113 验证输入的文本是否为汉字 170 实例114 限制输入字符串的长度 171 实例115 验证字符串是否以指定字符串开头 172 实例116 验证身份证号码 174 实例117 验证护照编号 175 实例118 验证车牌号码 ...

    基于matlab的车牌号码识别系统(模板匹配法,亲测可用)

    车牌预处理(车牌图像灰度化,车牌图像边缘检测、车牌图像腐蚀处理、车牌图像平滑化处理、移除小对象处理)、车牌定位、字符分割、字符识别(模板匹配法识别)。 识别准确率大概在40%-50%左右 模板匹配法来进行字符...

    Python实验三 巩固和掌握复杂数据类型.docx

    【实验目的】 【主要仪器设备或实验环境】 【实验内容】 ...4. 编写一段程序,用于统计输入字符串中每个字母的出现次数(忽略大小写,如a与A算同一个字母),要求结果以字典类型保存,如{‘a’:3,’b’:1}。

    大量批处理实用程序例程

    本资源由大量的实用批处理文件组成,删除.txt尾缀名双击即可直接使用,既是学习的模板也可以作为实用程序,如下为文件组成,涉及文件管理,系统,网络,小工具等等: 0-reaname 2000XP停止打印.bat BAT珍藏 dir.bat...

    VC++6.0核心编程源码.rar

    该函数能够检测出用户首选的语言(在Regional Settings Control Panel小应用程序中设定),并返回相应的文本。当然,你首先必须自己转换字符串,然后将已转换的消息表资源嵌入你的.exe文件或DLL模块,不过,这时该...

    delphi 开发经验技巧宝典源码

    0166 判断字符中是否有汉字 108 0167 判断字符中是否有双字节 109 0168 判数输入的字符串是否为整数 109 5.4 字符串的个数问题 110 0169 获取文字中英文单词的个数 110 0170 如何统计两个子字符串之间的...

Global site tag (gtag.js) - Google Analytics