Java字符串课堂练习

question1:

/*
问题1:求S2在S1中出现的次数
s1=“abcabcbcacbabbabcba”
s2=“abc”
推荐算法:KMP算法
*/

    public static void question1(){
        /*
        问题1:求s2在s1中出现的次数
        s1="abcabcbcacbabbabcba"
        s2="abc"
        */
        String s1="12376128736123123612312312536123123";
        String s2="12";
        int count=0;
        for(int i=0;i<s1.length()-s2.length()+1;i++){
            String sub=s1.substring(i,i+s2.length());
            if(sub.equals(s2)){
                count++;
            }
        }
        System.out.println("s2在s1中出现了"+count+"次");
    }

question2

/*

问题2:判断字符串s是否是回文

s="上海自来水来自海上"

*/

    public static void question2(){
        /*
        问题2:判断字符串s是否是回文
        s="上海自来水来自海上"
        */
        String s="13088888031";
        int left=0;
        int right=s.length()-1;
        boolean flag=true;
        while(true){
            if(s.charAt(left)==s.charAt(right)){
                left++;
                right--;
                if(left>=right){
                    break;
                }
            }else{
                flag=false;
                break;
            }
        }
        System.out.println("s是回文吗:"+flag);
    }

question3:

/*

问题3:模拟trim的功能,自定义实现

s="  安利给~   "

*/

    public static void question3(){
        /*
        问题3:模拟trim的功能,自定义实现
        s="  安利给~   "
        */
        String s="      123123123     ";
        int left=0;
        int right=s.length()-1;
        while(s.charAt(left)==' '){
            left++;
        }
        while(s.charAt(right)==' '){
            right--;
        }
        String res=s.substring(left,right+1);
        System.out.println("["+res+"]");
    }

question4:

/*

问题4:求s1和s2中最大的相同子串(s1.length()>s2.length())

s1="Python is a program language but is slow";

s2="Java is a program language but is fast

*/

    public static void question4(){
        /*
        问题4:求s1和s2中最大的相同子串(s1.length()>s2.length())
        s1="Python is a program language but is slow";
        s2="Java is a program language but is fast"
        " is a program language but is "
        */
        String s1="Python is a program language but is slow";
        String s2="Java is a program language but is fast";
        boolean flag=true;
        for(int len=s2.length();len>=1;len--){
            for(int i=0,j=len-1;j<s2.length();i++,j++){
                String sub=s2.substring(i,j+1);
                // System.out.println(sub);
                if(s1.contains(sub)){
                    flag=false;
                    System.out.println("结果就是["+sub+"]");
                    break;
                }
            }
            if(!flag){
                break;
            }
        }
    }
发布了65 篇原创文章 · 获赞 3 · 访问量 1772

猜你喜欢

转载自blog.csdn.net/weixin_44077638/article/details/104328619