java判断一个长的字符串中,是否包含一个小的字符串(4种方法)

博客主要围绕Java中判断一个长字符串是否包含一个小字符串展开,介绍了刚入门的做法,还提及采用jdk String的substring方法、正则表达式方法以及contains()方法来实现该判断。

判断一个长的字符串中,是否包含一个小的字符串

需求:一个长的字符串为:aberdandyertfd。
一个短的字符串为:andy 那么就是包含,否则不包含
运用到的技术点: 
   1.for循环  
   2.if判断
   3.String.leng 获取字符串长度
   4.String.charAt() 获取字符串对应索引的 数据转换成 字符类型char。
     例如  String name = "abc";  char a = name.char(0);  输出: a = 'a'; 
   5.String.equals() 判断两个字符串中的内容是否一致,一致就返回 true,反之 false
   6.方法
              

1.刚入门的做法

i = 3时的效果

public class Demo {
    public static void main(String[] args) {
        String wordLong = "aberdandyertfd"; //长字符串 
        String wordShort = "yertfd"; //短字符串

        System.out.println(judgeInclude(wordLong, wordShort));

    }

        //判断长的字符串是否包含 短的字符串, 返回值为布尔类型,两个形参长的字符串,短的字符串.
    public static boolean judgeInclude(String wordLong, String wordShort) {
        String a = ""; //作用:拼接长字符串的内容
        String b = ""; //作用:拼接 a 字符串中等于 短字符串长度 的内容。
        for (int i = 0; i < wordLong.length(); i++) { //用遍历长字符串
            a += wordLong.charAt(i); // i = 0  a = a  ||  i = 1  a = ab  || i =2 a = abe 
            System.out.println("a1 = " + a);

            //大于等于 短字符串长度的时候 就开始拼接 a字符串从后往前数等于 短字符串长度的 字符串。
            if (i >= wordShort.length()) { // i >= 3
                System.out.println("a.length() = " + (a.length() - wordShort.length()));//3 - 3
                System.out.println("a.length() = " + a.length()); // 3
                for (int j = a.length() - wordShort.length(); j < a.length(); j++) { // j = 0 , j < 3 ,j ++
                    b += a.charAt(j);  //j = 0  b = a, || j = 1 b = ab || j = 2 b = abe
                    System.out.println("b = " + b); // abe
                    if (wordShort.equals(b)) { // 判断短字符串中的内容 "ber"  是否等于字符串 b 中的内容 "abe"
                        return true;     //相等的话就放回true,方法出栈。
                    }
                }
                b = "";//长度等于 要比较的字符串时 对比判断相对就 归零. b = abe  归零后-- b = "" 空字串

            }
        }
        return false; //循环比对完都没有匹配的就说明不包含,则返回false
    }
}

i = 4 时的效果

//判断长的字符串是否包含 短的字符串, 返回值为布尔类型,两个形参长的字符串,短的字符串.
  public static boolean judgeInclude(String wordLong, String wordShort) {
        String a = "";
        String b = "";
        for (int i = 0; i < wordLong.length(); i++) { //用遍历长字符串
            a += wordLong.charAt(i); // i =4 a = aber
            System.out.println("a1 = " + a);//aber

            //大于等于 短字符串长度的时候 就开始拼接 a字符串从后往前数等于 短字符串长度的 字符串。
            if (i >= wordShort.length()) { // i >= 4
                System.out.println("a.length() = " + (a.length() - wordShort.length()));//4 - 3
                System.out.println("a.length() = " + a.length()); // 4
                for (int j = a.length() - wordShort.length(); j < a.length(); j++) { // j = 1 , j < 4 ,j ++
                    b += a.charAt(j);  //j = 0  b = b, || j = 1 b = be || j = 2 b = ber
                    System.out.println("b = " + b); // ber
                    if (wordShort.equals(b)) { // 判断短字符串中的内容 "ber"  是否等于字符串 b 中的内容 "ber"
                        return true;     //相等的话就放回true,方法出栈。
                    }
                }
                b = "";

            }
        }
        return false;
    }
}

2.采用jdk String的substring方法。

public String substring(int beginIndex, int endIndex)
beginIndex -- 起始索引(包括), 索引从 0 开始。
endIndex -- 结束索引(不包括)
public class Demo {
    public static void main(String[] args) {
        String wordLong = "aberdandyertfd"; //长字符串
        String wordShort = "ber"; //短字符串

        System.out.println(judgeInclude(wordLong, wordShort));//true

    }


    public static boolean judgeInclude(String wordLong, String wordShort) {
        for (int i = 0; i < wordLong.length() - wordShort.length(); i++) {
            if (wordLong.substring(i, i + wordShort.length()).equals(wordShort)) {
                return true;
            }
        }
        return false;
    }
}

3.采用 正则表达式方法。

public class Demo {
    public static void main(String[] args) {
        String wordLong = "aberdandyertfd"; //长字符串
        String wordShort = "ye"; //短字符串

        System.out.println(judgeInclude(wordLong, wordShort));//true

    }


    public static boolean judgeInclude(String wordLong, String wordShort) {
        String target = "(.*" + wordShort + ".*)*";
        if (wordLong.matches(target)) {
            return true;
        }
        return false;
    }
}

4.采用 contains() 方法。

public boolean contains(CharSequence chars)
contains() 方法用于判断字符串中是否包含指定的字符或字符串。
public class Demo {
    public static void main(String[] args) {
        String wordLong = "aberdandyertfd"; //长字符串
        String wordShort = "ye"; //短字符串

        System.out.println(wordLong.contains(wordShort));//true

    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值