【Java笔试题】字符串包含问题

来源:互联网 发布:us域名被墙 编辑:程序博客网 时间:2024/06/05 07:10

1、题目

给定两个分别由字母组成的字符串str1和字符串str2,字符串str2的长度比字符串str1短,请问,如何最快地判断字符串str2中所有字母是否都在字符串str1里?例如,字符串str1为“ABCD”,str2为“AC”,则返回true,因为字符串str2中的字母A和B都在字符串str1中,但如果str2为“AE”,则返回false,因为字符串str2中的字母E不在字符串sstr1中。

2、解题思想

因为直接比较字符串不太好比较,所以我们可以先将其转化为字符数组,然后利用角标对字符数组进行循环比较。

3、Java代码

public class StringContain {    public static void main(String[] args) {        String str1 = "ABCD";        String str2 = "AA";        System.out.println(stringContain(str1,str2));;    }    public static boolean stringContain(String str1,String str2) {        //将字符串转为字符数组        char[] a = str1.toCharArray();        char[] b = str2.toCharArray();        //进行循环比较        for (int i = 0; i < b.length; ++i) {            int j;            //如果a[j]等于b[i],则跳出本次循环,反之j+1            for (j = 0; (j < a.length) && (a[j] != b[i]); ++j)                 ;                if (j >= a.length) {                return false;            }        }        return true;    }}
1 0
原创粉丝点击