📄 analyzesentence.java
字号:
//: c12:AnalyzeSentence.java
// Look for particular sequences in sentences.
// From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
// www.BruceEckel.com. See copyright notice in CopyRight.txt.
import com.bruceeckel.simpletest.*;
import java.util.*;
public class AnalyzeSentence {
private static Test monitor = new Test();
public static void main(String[] args) {
analyze("I am happy about this");
analyze("I am not happy about this");
analyze("I am not! I am happy");
analyze("I am sad about this");
analyze("I am not sad about this");
analyze("I am not! I am sad");
analyze("Are you happy about this?");
analyze("Are you sad about this?");
analyze("It's you! I am happy");
analyze("It's you! I am sad");
monitor.expect(new String[] {
"",
"new sentence >> I am happy about this",
"I",
"am",
"happy",
"about",
"this",
"",
"new sentence >> I am not happy about this",
"I",
"am",
"not",
"happy",
"Sad detected",
"",
"new sentence >> I am not! I am happy",
"I",
"am",
"not!",
"I",
"am",
"happy",
"",
"new sentence >> I am sad about this",
"I",
"am",
"sad",
"Sad detected",
"",
"new sentence >> I am not sad about this",
"I",
"am",
"not",
"sad",
"",
"new sentence >> I am not! I am sad",
"I",
"am",
"not!",
"I",
"am",
"sad",
"Sad detected",
"",
"new sentence >> Are you happy about this?",
"Are",
"you",
"happy",
"",
"new sentence >> Are you sad about this?",
"Are",
"you",
"sad",
"Sad detected",
"",
"new sentence >> It's you! I am happy",
"It's",
"you!",
"I",
"am",
"happy",
"",
"new sentence >> It's you! I am sad",
"It's",
"you!",
"I",
"am",
"sad",
"Sad detected"
});
}
private static StringTokenizer st;
private static void analyze(String s) {
System.out.println("\nnew sentence >> " + s);
boolean sad = false;
st = new StringTokenizer(s);
while(st.hasMoreTokens()) {
String token = next();
// Look until you find one of the
// two starting tokens:
if(!token.equals("I") &&
!token.equals("Are"))
continue; // Top of while loop
if(token.equals("I")) {
String tk2 = next();
if(!tk2.equals("am")) // Must be after I
break; // Out of while loop
else {
String tk3 = next();
if(tk3.equals("sad")) {
sad = true;
break; // Out of while loop
}
if(tk3.equals("not")) {
String tk4 = next();
if(tk4.equals("sad"))
break; // Leave sad false
if(tk4.equals("happy")) {
sad = true;
break;
}
}
}
}
if(token.equals("Are")) {
String tk2 = next();
if(!tk2.equals("you"))
break; // Must be after Are
String tk3 = next();
if(tk3.equals("sad"))
sad = true;
break; // Out of while loop
}
}
if(sad) System.out.println("Sad detected");
}
static String next() {
if(st.hasMoreTokens()) {
String s = st.nextToken();
System.out.println(s);
return s;
}
else
return "";
}
} ///:~
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -