startsWith()——用于检测字符串是否以指定的前缀开始
语法:public boolean startsWith(String prefix,int toffset)
或: public boolean startsWith(String prefix)
参数:prefix 前缀
toffset 字符串中开始查找的位置
endsWith()——用于测试字符串中是否以指定的后缀结束
语法:public boolean endsWith(String suffix)
参数:suffix 指定的后缀
注意(返回值):如果参数是空字符串,或者等于此String对象(用equals(Object)方法确定),则结果为true
replace()——用newChar字符替换字符串中出现的所有oldChar字符,并返回替换后的新字符串
语法:public String replace(char oldChar,char newChar)
参数:oldChar 老字符
newChar 新字符
Scanner类的方法——next()与nextLine()
1.next()
a.一定要读取到有效字符后才可以输入
b.对输入有效字符前遇到的空白,next()方法会自动将其去掉
c.只有输入有效字符后才将其后面输入的空白作为分隔符或结束符
d.next()方法不能得到带有空格的字符串
2.nextLine()
a.以Enter为结束符,也就是说nextLine()是返回之前输入的所有字符
b.可以获得空白
相关程序:
public class AI2 {
public String answer(String question) {
String ret = null;
ret = handleCanStart(question);
if (ret != null) {
return ret;
}
ret = handleAskTail(question);
if (ret != null) {
return ret;
}
return handleUnkown(question);
}
private String handleCanStart(String question) {
String[] canStart = new String[]{"会", "能", "有", "敢", "在"};
for (int i = 0; i < canStart.length; i++) {
if (question.startsWith(canStart[i])) {
return canStart[i] + "!";
}
}
return null;
}
private String handleAskTail(String question) {
String[] askTail = new String[]{"吗?", "吗?", "吗"};
for (int i = 0; i < askTail.length; i++) {
if (question.endsWith(askTail[i])) {
return question.replace(askTail[i], "!");
}
}
return null;
}
private String handleUnkown(String question) {
return question + "!";
}
}
调用:
import java.util.Scanner;
public class AI2AppMain {
public static void main(String[] args) {
AI2 ai2 = new AI2();
Scanner in = new Scanner(System.in);
while (true) {
String input = in.next();
if ("exit".equals(input)) {
System.out.println("再见!");
break;
}
String answer = ai2.answer(input);
System.out.println(answer);
}
}
}