一个白盒测试的java笔试题,求高手作答案
本帖最后由 zsn321 于 2013-3-1 11:10 编辑文本搜索程序
编写一个文本搜索类TextFinder
其中包含函数:
boolean find(String text,String keyword)
在text中搜索keyword 指定的文字。不区分大小写。招到返回true。
keyword 可以包含任意个词。词与词之间使用“+”,“-”连接,“+”要表示包含。
下面是一些例子:
1.computer表示text中要包含computer
2.computer+java表示text中要包含computer和java
3.computer+java-C 表示要包含computer和java 但是不能包含C
求java的答案 这个题目不难,我写一个给你,简单的,你自己再看情况添加一些方法
public class TextFinder {
//在text中搜索keyword 指定的文字。不区分大小写。找到返回true
boolean find(String text, String keyword) {
boolean result=true;
int fromIndex = 0;
int index=0;
while(keyword.indexOf("-", fromIndex)!=-1) {
index= keyword.indexOf("-", fromIndex);
fromIndex=index;
// 如果字符串后面没有+,则全部截断“-”后的字符串
if(keyword.indexOf("+", fromIndex)==-1){
keyword=keyword.substring(0, index);
break;
}
else {
index= keyword.indexOf("+", fromIndex); //从fromIndex开始,包括fromIndex
keyword=keyword.substring(0, fromIndex)+keyword.substring(index);
}
}
String key[] = keyword.trim().toLowerCase().split("[+]+");
System.out.print("您想要搜索的关键字是: ");
for(String str: key)
System.out.print(str+" ");
System.out.println(" ");
for(String str: key) {
if(!text.toLowerCase().contains(str)) {
System.out.println(str+"不在文本中");
result=false;
}
}
return result;
}
public static void main(String[] args) {
TextFinder tf= new TextFinder();
boolean b=tf.find("computerjavaABCDFGH", "computer+java-C+d-g-f+Z");
System.out.println(b);
}
} public class TextFinder {
//在text中搜索keyword 指定的文字。不区分大小写。找到返回true
boolean find(String text, String keyword) {
boolean result=true;
int fromIndex = 0;
int index=0;
while(keyword.indexOf("-", fromIndex)!=-1) {
index= keyword.indexOf("-", fromIndex);
fromIndex=index;
// 如果字符串后面没有+,则全部截断“-”后的字符串
if(keyword.indexOf("+", fromIndex)==-1){
keyword=keyword.substring(0, index);
break;
}
else {
index= keyword.indexOf("+", fromIndex); //从fromIndex开始,包括fromIndex
keyword=keyword.substring(0, fromIndex)+keyword.substring(index);
}
}
String key[] = keyword.trim().toLowerCase().split("[+]+");
System.out.print("您想要搜索的关键字是: ");
for(String str: key)
System.out.print(str+" ");
System.out.println(" ");
for(String str: key) {
if(!text.toLowerCase().contains(str)) {
System.out.println(str+"不在文本中");
result=false;
}
}
return result;
}
public static void main(String[] args) {
TextFinder tf= new TextFinder();
boolean b=tf.find("computerjavaABCDFGH", "computer+java-C+d-g-f+Z");
System.out.println(b);
}
} 回复 2# ganmaotong
求指导自学Java语言,先谢谢了 回复 4# 利勇lmm 你想要怎么指导?
java我也是自学的。
现在我在自学android开发 回复 5# ganmaotong
实实在在的看书,老老实实的写代码
页:
[1]