📄 word.java
字号:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.Vector;
public class Word {
String s="";
//char operator[]={'+','-','*','/','=','<','>','!'};
//char separator[]={'(',')',';'};
String keyword[]={"do","while","int","for","if","else"};
Vector wordVector=null;
private int line=1;
Word(String s,Vector vector){
this.wordVector=vector;
this.s=s;
}
//1表示标识符,2表示关键字,3表示常数,4表示算符,5表分界符
public void analyze(){
char temp[]=s.toCharArray();
//System.out.println(temp.length);
String s="";
for(int i=0;i<temp.length;i++){
if((temp[i]==' ')||(temp[i]=='\t')){//
continue;
}
else if(temp[i]=='\n'){
line++;
continue;
}
else if((65<=temp[i]&&temp[i]<=90)||(97<=temp[i]&&temp[i]<=122)){
s=s+temp[i];
i++;
while(('A'<=temp[i]&&temp[i]<='Z')||('a'<=temp[i]&&temp[i]<='z')||('0'<=temp[i]&&temp[i]<='9')){
s=s+temp[i];
i++;
}
if(isKeyword(s)){
wordVector.addElement(new Token(2,s,line));
}
else{
wordVector.addElement(new Token(1,s,line));
}
i--;
s="";
continue;
}
else if('0'<=temp[i]&&temp[i]<='9'){
s=s+temp[i];
i++;
while('0'<=temp[i]&&temp[i]<='9'){
s=s+temp[i];
i++;
}
wordVector.addElement(new Token(3,s,line));
i--;
s="";
}
else if(temp[i]=='!'){
s=s+temp[i];
i++;
if(temp[i]=='='){
s=s+temp[i];
wordVector.addElement(new Token(4,s,line));
}
else{
wordVector.addElement(new Token(4,s,line));
i--;
}
s="";
}
else if(temp[i]=='>'){
s=s+temp[i];
i++;
if(temp[i]=='='){
s=s+temp[i];
wordVector.addElement(new Token(4,s,line));
}
else{
wordVector.addElement(new Token(4,s,line));
i--;
}
s="";
}
else if(temp[i]=='<'){
s=s+temp[i];
i++;
if(temp[i]=='='){
s=s+temp[i];
wordVector.addElement(new Token(4,s,line));
}
else{
wordVector.addElement(new Token(4,s,line));
i--;
}
s="";
}
else if(temp[i]=='='){
s=s+temp[i];
i++;
if(temp[i]=='='){
s=s+temp[i];
wordVector.addElement(new Token(4,s,line));
}
else{
wordVector.addElement(new Token(4,s,line));
i--;
}
s="";
}
else if(temp[i]=='+'){
s=s+temp[i];
i++;
if((temp[i]=='=')||(temp[i]=='+')){
s=s+temp[i];
wordVector.addElement(new Token(4,s,line));
}
else{
wordVector.addElement(new Token(4,s,line));
i--;
}
s="";
}
else if(temp[i]=='-'){
s=s+temp[i];
i++;
if((temp[i]=='=')||(temp[i]=='-')){
s=s+temp[i];
wordVector.addElement(new Token(4,s,line));
}
else{
wordVector.addElement(new Token(4,s,line));
i--;
}
s="";
}
else if(temp[i]=='*'){
s=s+temp[i];
i++;
if((temp[i]=='=')){
s=s+temp[i];
wordVector.addElement(new Token(4,s,line));
}
else{
wordVector.addElement(new Token(4,s,line));
i--;
}
s="";
}
else if((temp[i]=='/')&&(temp[i+1]=='/')){
i=i+2;
while(!(temp[i]=='/')&&(temp[i+1]=='/')){
i++;
}
i++;
}
else if((temp[i]=='/')&&(temp[i+1]=='*')){
i=i+2;
while(!(temp[i]=='*')&&(temp[i+1]=='/')){
i++;
}
i++;
}
else if((temp[i]=='/')&&(temp[i+1]!='/')){
s=s+temp[i];
i++;
if(temp[i]=='='){
s=s+temp[i];
wordVector.addElement(new Token(4,s,line));
}
else{
wordVector.addElement(new Token(4,s,line));
i--;
}
s="";
}
else if(temp[i]=='('){
s=s+temp[i];
wordVector.addElement(new Token(5,s,line));
s="";
}
else if(temp[i]==')'){
s=s+temp[i];
wordVector.addElement(new Token(5,s,line));
s="";
}
else if(temp[i]==';'){
s=s+temp[i];
wordVector.addElement(new Token(5,s,line));
s="";
}
else if(temp[i]=='"'){
//s=s+temp[i];
i++;
while(temp[i]!='"'){
s=s+temp[i];
i++;
}
wordVector.addElement(new Token(3,s,line));
s="";
}
}
//display();
writeToFile();
}
private boolean isKeyword(String s){
for(int i=0;i<keyword.length;i++){
if(s.equals(keyword[i])){
return true;
}
}
return false;
}
private void display(){
for(int i=0;i<wordVector.size();i++){
System.out.println(wordVector.elementAt(i));
}
}
private void writeToFile(){
File file=new File("word.txt");
BufferedWriter bw=null;
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else{
file.delete();
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
bw=new BufferedWriter(new FileWriter(file));
Iterator iterator=wordVector.iterator();
while(iterator.hasNext()){
bw.write(iterator.next().toString());
bw.write(System.getProperty("line.separator"));
}
bw.close();
} catch (IOException e) {
if(bw!=null){
try {
bw.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -