写各种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~~");
}
}
分享到:
相关推荐
AIX 6.1 安装中文字符集的优点是可以满足用户在使用 AIX 6.1 操作系统时的需求,例如在某些应用程序中需要使用中文字符集。同时,安装中文字符集也可以提高 AIX 6.1 操作系统的可用性和可读性。 需要注意的是,在...
字符分割程序是信息技术领域中文本处理的一个重要环节,主要用于将连续的字符序列分解为独立的单元,以便于后续的分析和处理。这个过程在许多应用中都至关重要,比如光学字符识别(OCR)、自然语言处理(NLP)以及...
为了计算中文字符串的长度,我们需要遍历字符串的每一个字节,检查它们是否构成一个完整的中文字符。 在Unicode编码中,中文字符通常以连续的两个字节的形式出现,这两个字节的最高位都是1,而英文字符的最高位是0...
### 检查字符串中字符出现的次数(包含汉字) #### 知识点解析 本文将根据提供的代码示例,详细解析如何在Java程序中统计一个字符串中各个字符(包括汉字)出现的次数。该方法适用于任何包含字符的字符串,无论...
7. **运行示例**:最后,你可以创建一个简单的程序,读取图像,使用上述步骤在图像上添加中文字符,然后保存或显示结果。 以上就是利用Linux、OpenCV和FreeType在图像上写入中文字符的基本流程。这个过程可能涉及到...
总的来说,URL编码解码小程序是一个实用的工具,可以帮助用户方便地处理含有非ASCII字符或特殊字符的URL,提高他们在网络开发和数据处理中的效率。理解URL编码的工作原理和应用场景,对于理解互联网通信的基础和解决...
在IT行业中,处理文本数据,特别是涉及多语言版本时,经常需要解析文件中的特定内容,如中文字符串。这里,我们关注的是如何从Java文件、C#(cs)文件以及Designer文件中提取中文字符和控件信息。这个过程涉及到编程...
在微信小程序中,虽然系统默认的键盘可能无法满足特定场景下的录入需求,如车牌号输入,因为车牌号通常由汉字、字母和数字组成,需要特定顺序和格式。因此,开发者需要创建一个自定义键盘组件,该组件包含符合车牌...
"查看oracle dmp字符集的小工具"就是针对这一需求开发的实用程序。 该工具的特色在于它的绿色小巧,无需安装即可运行,减少了对系统资源的影响。同时,它能够处理大于10KB的DMP文件,这表明其对于大型数据库的字符...
模板匹配适用于字符库较小的场景,而深度学习方法在大量数据集上训练后能实现较高的识别准确率。 6. C++编程:本程序使用C++语言编写,这是系统级编程的常用语言,效率高且功能强大。开发时可能需要用到OpenCV库,...
在微信小程序的开发中,实现首字母排序选择功能是一项常见的需求,这通常涉及到用户界面的友好性和数据管理的效率。这个压缩包“微信小程序-首字母排序选择功能开发.zip”包含了一个小程序模板代码,用于帮助开发者...
在这个"delphi字符串汉字统计小例子"中,我们探讨的核心知识点是如何在Delphi程序中统计一个字符串中汉字的数量,这对于短信软件开发或者其他涉及到文本处理的应用非常实用。下面我们将深入讨论相关的编程技术和思路...
描述中的关键词“小程序中文”、“小程序hash”和“小程序哈希”进一步强调了这个`md5.js`库的功能,即它能在微信小程序中处理中文字符串,并生成其对应的哈希值。哈希(Hash)是数据的一种快速索引方式,通过哈希...
当用户选择或系统自动检测到语言变更时,可以调用微信小程序的`wx.getLocale()`方法获取当前语言环境,然后使用`wx.getStorageSync`或`wx.setStorageSync`来读写本地存储,保存用户的语言选择。 在页面或组件的生命...
在IT行业中,微信小程序是一种轻量级的应用开发平台,它允许开发者快速构建可以在微信内运行的应用程序,无需安装即可使用,极大地提升了用户体验。本项目"carnumber_input_微信小程序_车牌_"聚焦于创建一个特定的...
微信小程序是一种轻量级的应用开发平台,由腾讯公司推出,主要应用于移动端,提供丰富的API接口和组件,使得开发者可以快速构建具有原生体验的应用。在车牌号输入功能页的开发中,微信小程序提供了多种技术手段来...
微信小程序-汉字拼音首字母排序选择,包括了一个微信小程序富文本解析函数库,收录字符的Unicode编码范围为19968至40869,汉字拼音首字母列表 本列表包含了20902个汉字,用于配合 ToChineseSpell,改动为判定输入数组...
- **定义**:矩形窗口是指在图像上滑动的小矩形框,用于检测字符区域。 - **设计思路**:通过数学推导,设计一种利用卷积和微分运算的矩形窗口检测算法。 - **实现原理**:该算法利用图像梯度信息,通过卷积操作检测...
随机产生字符串,字符串中的字符只能由特殊字符(&@#$%*),大写字母(A-Z),小写字母(a-z)以及数字(0-9)组成,且每种字符至少出现一次。这样产生字符串的方式可以应用到如下场景,比如,我们有一个应用就是添加用户完毕...
### C语言100经典小程序知识点解析 #### 第1题:成绩分析函数 ...以上代码片段和解析涵盖了题目要求的五个经典C语言小程序的知识点,包括数组操作、条件判断、循环结构、字符串处理以及素数判定等。