⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 findchinese.java

📁 check chinese in source code file
💻 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 + -