?? findchinese.java
字號:
/**
* <pre>
* 標 題: DOCUMENT ME!
* 描 述: DOCUMENT ME!
* 版權所有: 版權所有(C)2003-2006
* 內容摘要: 查找中文字符工具
*/
import java.io.*;
public class FindChinese
{
private static String strResultFile = "result.txt";
//private static String engCharset = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \\t\\n\\r\\x0b\\x0c";
private static char[] engCharset =
{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '!', '\"', '#', '$', '%', '&',
'\'', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[',
'\\', ']', '^', '_', '`', '{', '|', '}', '~', ' ', '\t', '\n', '\r', 0x0b, 0x0c};
public static void main(String[] args)
{
try
{
FindChinese fc = new FindChinese();
if (args.length == 0)
{
fc.run();
}
else if (args.length == 1)
{
File inputFile = new File(args[0]);
if (inputFile.isFile())
{
FileWriter writer = new FileWriter(strResultFile);
fc.checkFile(args[0], writer);
writer.close();
}
else if (inputFile.isDirectory())
{
FileWriter writer = new FileWriter(strResultFile);
fc.checkDirectory(inputFile, writer);
writer.close();
}
else
{
System.out.println("Please check if the input file or directory exists.");
}
}
else
{
File inputFile = new File(args[0]);
if (inputFile.isFile())
{
FileWriter writer = new FileWriter(args[1]);
fc.checkFile(args[0], writer);
writer.close();
}
else if (inputFile.isDirectory())
{
FileWriter writer = new FileWriter(args[1]);
fc.checkDirectory(inputFile, writer);
writer.close();
}
else
{
System.out.println("Please check if the input file or directory exists.");
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
private void checkDirectory(File inputFile, FileWriter writer)
{
File[] allFiles = inputFile.listFiles();
for (int i = 0; i < allFiles.length; i++)
{
if (allFiles[i].isFile())
{
checkFile(allFiles[i].getAbsolutePath(), writer);
}
else if (allFiles[i].isDirectory())
{
checkDirectory(allFiles[i], writer);
}
}
}
private void checkFile(String file, FileWriter writer)
{
try
{
FileReader readFile = new FileReader(file);
BufferedReader bufferReader = new BufferedReader(readFile);
int lineNo = 0;
while (true)
{
String strLine = bufferReader.readLine();
if (strLine == null)
{
break;
}
else
{
if (hasChineseChar(strLine))
{
writer.write("File: " + file + " Line: " + lineNo + " : " + strLine + "\n");
writer.flush();
}
}
lineNo++;
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
private void run()
{
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String enter = "";
do
{
System.out.println("------------------------------------------");
System.out.println(" Tool To Find Chinese Char ");
System.out.println("please enter file to chek or Q/q to Quit: ");
System.out.println("------------------------------------------");
try
{
enter = r.readLine().trim();
if (enter.toLowerCase().equalsIgnoreCase("q"))
{
break;
}
if (!enter.equalsIgnoreCase(""))
{
checkFile(enter, new FileWriter(strResultFile));
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
while (true);
}
private boolean hasChineseChar(String line)
{
for (int i = 0; i < line.length(); i++)
{
if (!contain(engCharset, line.charAt(i)))
{
return true;
}
}
return false;
}
private boolean contain(char[] charset, char c)
{
for (int i = 0; i < charset.length; i++)
{
if (c == charset[i])
{
return true;
}
}
return false;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -