Java笔试题--比较两字符串

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));        
    }    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值