📄 scantest.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */import java.util.Scanner;import java.util.ArrayList;/** * * @author zhaowei */public class ScanTest { private boolean error = false; public void newTest() { Scanner scanner = new Scanner(System.in); ArrayList<Result> result = scan(scanner.nextLine().toLowerCase()+" "); if(!error) { for(Result current : result) { System.out.println(current.toString()); } } } public ArrayList<Result> scan(String input) { ArrayList<Result> result = new ArrayList<Result>(); int index = 0; while(index<input.length()-1) { while(input.charAt(index)==' ') { if(index==input.length()-1) return result; index++; } if(input.charAt(index)<='z'&&input.charAt(index)>='a') { int startIndex = index; index++; while((input.charAt(index)>='a'&&input.charAt(index)<='z')||(input.charAt(index)>='0'&&input.charAt(index)<='9')) { index++; } if(input.substring(startIndex,index).equals("if")) { result.add(new Result("if","-")); } else if(input.substring(startIndex,index).equals("then")) { result.add(new Result("then","-")); } else if(input.substring(startIndex,index).equals("else")) { result.add(new Result("else","-")); } else if(input.substring(startIndex,index).equals("while")) { result.add(new Result("while","-")); } else if(input.substring(startIndex,index).equals("do")) { result.add(new Result("do","-")); } else { result.add(new Result("IDN",input.substring(startIndex,index))); } } else if(input.charAt(index)>='1'&&input.charAt(index)<='9') { int startIndex = index; index++; while(input.charAt(index)>='0'&&input.charAt(index)<='9') { index++; } result.add(new Result("INT10",input.substring(startIndex,index))); } else if(input.charAt(index)=='0') { int startIndex = index; index++; if(input.charAt(index)>='0'&&input.charAt(index)<='7') { index++; while(input.charAt(index)>='0'&&input.charAt(index)<='7') { index++; } result.add(new Result("INT8",input.substring(startIndex,index))); } else if(input.charAt(index)=='x') { index++; if((input.charAt(index)>='0'&&input.charAt(index)<='9')||(input.charAt(index)>='a'&&input.charAt(index)<='f')) { index++; } while((input.charAt(index)>='0'&&input.charAt(index)<='9')||(input.charAt(index)>='a'&&input.charAt(index)<='f')) { index++; } result.add(new Result("INT16",input.substring(startIndex,index))); } else { result.add(new Result("INT10",input.substring(startIndex,index))); } } else if(input.charAt(index)=='+') { index++; result.add(new Result("+","-")); } else if(input.charAt(index)=='-') { index++; result.add(new Result("-","-")); } else if(input.charAt(index)=='*') { index++; result.add(new Result("*","-")); } else if(input.charAt(index)=='/') { index++; result.add(new Result("/","-")); } else if(input.charAt(index)=='<') { index++; result.add(new Result("<","-")); } else if(input.charAt(index)=='>') { index++; result.add(new Result(">","-")); } else if(input.charAt(index)=='(') { index++; result.add(new Result("(","-")); } else if(input.charAt(index)==')') { index++; result.add(new Result(")","-")); } else if(input.charAt(index)=='=') { index++; result.add(new Result("=","-")); } else if(input.charAt(index)==';') { index++; result.add(new Result(";","-")); } else { error(); return result; } } return result; } public void error() { error = true; System.out.println("Input Error!"); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -