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

📄 java2ansi.java

📁 看文件名就知道了吧。。。赫赫
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                                                                                            

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.Collection;
import java.util.HashSet;
import java.util.StringTokenizer;

/**                                                                                                                     
 * @author Jove                                                                                                         
 */                                                                                                                     
public class Java2Ansi {                                                                                                
    private static class UbbStyle {                                                                                     
        String begin, end;                                                                                              
        UbbStyle(String begin, String end) {                                                                            
            this.begin = begin;                                                                                         
            this.end = end;                                                                                             
        }
        String getBegin() {                                                                                             
            return begin;                                                                                               
        }
        String getEnd() {                                                                                               
            return end;                                                                                                 
        }
    }
    public static final int COMMENT = 3;                                                                                
    public static final int LINE_COMMENT = 2;                                                                           
    public static final int NONTYPE = -1;                                                                               
    public static final int QUOTE = 1;                                                                                  

    /*                                                                                                                  
    * 要求:                                                                                                             
    * 1. 最左边显示行号(可以设置)-优先级低                                                                              
    * 2. 关键字用[b][color=blue]                                                                                        
    * 3. 注释(包括行注释和块注释)用[color=blue]                                                                         
    * 4. 字符串或字符用紫色                                                                                             
    */                                                                                                                  

    static Collection reserved, classNames, methods;                                                                    

    static final char ESC=(char)27;                                                                                     

    static final UbbStyle reservedWordsStyle =                                                                          
        new UbbStyle(ESC+"[1;34m", ESC+"[m");                                                                           
    static final UbbStyle styleComment =                                                                                
        new UbbStyle(ESC+"[32m", ESC+"[m");                                                                             
    static final UbbStyle styleQuote =                                                                                  
        new UbbStyle(ESC+"[35m", ESC+"[m");                                                                             
    static final UbbStyle sytleClassName =                                                                              
        new UbbStyle(ESC+"[1;31m", ESC+"[m");                                                                           
    static final UbbStyle sytleMethod =                                                                                 
        new UbbStyle(ESC+"[32m", ESC+"[m");                                                                             
    public static final int WORD = 0;                                                                                   

    private static String readFile(String filename) {                                                                   
        try {                                                                                                           
            InputStream is = Java2Ansi.class.getResourceAsStream(filename);                                             
            byte[] b = new byte[is.available()];                                                                        
            is.read(b);                                                                                                 
            is.close();                                                                                                 
            return new String(b);                                                                                       
        } catch (Exception e) {                                                                                         
            return "";                                                                                                  
        }
    }

    static {                                                                                                            
            StringTokenizer st = null;                                                                                  
            st = new StringTokenizer(readFile("classnames.txt"));                                                       
            classNames = new HashSet();                                                                                 
            while (st.hasMoreElements()) {                                                                              
                classNames.add(st.nextToken());                                                                         
            }
            st = new StringTokenizer(readFile("reservedWords.txt"));                                                    
            reserved = new HashSet();                                                                                   
            while (st.hasMoreElements()) {                                                                              
                reserved.add(st.nextToken());                                                                           
            }
            st = new StringTokenizer(readFile("methods.txt"));                                                          
            methods = new HashSet();                                                                                    
            while (st.hasMoreElements()) {                                                                              
                methods.add(st.nextToken());                                                                            
            }
        }


    protected int currentType = NONTYPE;                                                                                

    protected String convert(String source) {                                                                           
        try {                                                                                                           
            StringWriter writer = new StringWriter(source.length() * 2);                                                
            PrintWriter out = new PrintWriter(writer);                                                                  
            BufferedReader reader =                                                                                     
                new BufferedReader(new StringReader(source));                                                           
            String line = null;                                                                                         
            while ((line = reader.readLine()) != null) {                                                                
                out.print(convertLine(line)+"\n");                                                                      
            }
            out.flush();                                                                                                
            return writer.toString();                                                                                   
        } catch (Exception e) {                                                                                         
            return "";                                                                                                  
        }
    }

    /**                                                                                                                 
    * 将一行内容转换为具有风格的内容。                                                                                  
    * @param line 一行文本                                                                                              
    * @return 转换后的结果                                                                                              

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -