看板java
标 题Re: [问题] 检查保留字的程式
发信站无名小站 (Wed Apr 5 18:33:25 2006)
转信站ptt!ctu-reader!ctu-peer!news.nctu!netnews.csie.nctu!wretch
看错了>"<
从那里拔豆, 就要从那里站起来。
除了道歉之外,俺附上自己实作的版本。
对不起啦>"<
实作策略:
1. 先建构一个能比对keyword的基本类别Keyword
2. 利用字串切割split组成token list
===========================================================
keyword档
abstract
assert
boolean
break
byte
case
catch
char
class
const
continue
default
do
double
else
enum
extends
false
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
null
package
private
protected
public
return
short
static
strictfp
super
switch
synchronized
this
throw
throws
transient
true
try
void
volatile
while
===========================================================
2. Keyword类别
import java.io.BufferedReader;
public class Keyword extends HashSet {
public Keyword() {
try {
BufferedReader reader = new BufferedReader(new FileReader(
"keyword"));
String temp;
while ((temp = reader.readLine()) != null) {
this.add(temp.trim());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args){
System.out.println(new Keyword().contains("goto"));
}
}
===========================================================
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class Check {
public static void main(String[] args) {
Keyword keyword = new Keyword();
String userInput = "asfdasdfsafd\nsfdajsfkajknavgotokljdf aksdfad
faskdflaksfd aslkfa sldflaskjdfaskj"
+ "dflaskdf \n goto\nif\njkjsk if(";
Iterator tokens = Arrays.asList(
userInput.split("[\\n\\ \\(\\),\\.\\r]+")).iterator();
String curToken = null;
while (tokens.hasNext()) {
curToken = (String) tokens.next();
if (keyword.contains(curToken)) {
System.out.println("发现keyword [" + curToken + "]");
} else {
System.out.println(curToken + "并没有什麽可疑之处");
}
}
}
}
===========================================================
asfdasdfsafd并没有什麽可疑之处
sfdajsfkajknavgotokljdf并没有什麽可疑之处
aksdfad并没有什麽可疑之处
faskdflaksfd并没有什麽可疑之处
aslkfa并没有什麽可疑之处
sldflaskjdfaskjdflaskdf并没有什麽可疑之处
发现keyword [goto]
发现keyword [if]
jkjsk并没有什麽可疑之处
发现keyword [if]
--
夫兵者不祥之器物或恶之故有道者不处君子居则贵左用兵则贵右兵者不祥之器非君子
之器不得已而用之恬淡为上胜而不美而美之者是乐杀人夫乐杀人者则不可得志於天下
矣吉事尚左凶事尚右偏将军居左上将军居右言以丧礼处之杀人之众以哀悲泣之战胜以
丧礼处之道常无名朴虽小天下莫能臣侯王若能守之万物将自宾天地相合以降甘露民莫
之令而自均始制有名名亦既有夫亦将知止知止可以不殆譬道之在天下163.26.34.20海