1、题目
给定两个分别由字母组成的字符串str1和字符串str2,字符串str2的长度比字符串str1短,请问,如何最快地判断字符串str2中所有字母是否都在字符串str1里?例如,字符串str1为“ABCD”,str2为“AC”,则返回true,因为字符串str2中的字母A和B都在字符串str1中,但如果str2为“AE”,则返回false,因为字符串str2中的字母E不在字符串sstr1中。
2、解题思想
因为直接比较字符串不太好比较,所以我们可以先将其转化为字符数组,然后利用角标对字符数组进行循环比较。
代码入下:
public class Demo {
public static boolean stringContain(String str1,String str2) {
if(str2.length()>str1.length()) {
return false;
}
char[] a=str1.toCharArray();
char[] b=str2.toCharArray();
for(int i=0;i<b.length;i++) {
int j;
for(j=0;(j<a.length)&&(a[j]!=b[i]);++j) {
}
if(j>=a.length) {
return false;
}
}
return true;
}
public static void main(String args[]) {
String str1="abcdefg";
String str2="aj";
System.out.println(stringContain(str1, str2));
}