黑马程序员技术交流社区

标题: 温习白天学习内容---String类4题应用。 [打印本页]

作者: wyw    时间: 2015-4-12 23:30
标题: 温习白天学习内容---String类4题应用。
温习一下白天看的教学视频内容,4个小题目。
/*

1、模拟一个trim方法,去除字符串两端的空格。

2、将一个字符串进行反转。将字符串中指定的部分进行反转。

3、获取一个字符串在另一个字符串中出现的次数。

4、获取两个字符串中最大相同子串。

*/


public class StringTestDemo
{

        public static void main(String[] args)
        {
                String s1 = "   abc   ";
                myTrim(s1);
                String s2 = "abcdefg";
                myRevese(s2,1,5);
                String s3 ="ajjsjjsjjddjjd";
                String s4 = "jj";
                getSubCount(s3,s4);
                String s5 = "sssshelloworldggg";
                String s6 = "helloworld";
                getMaxString(s5,s6);
        }
       
        public static void sop(Object obj) //由于很多地方会用到打印,定义一个函数调用方便
        {
                System.out.println(obj);
        }
       
        public static void myTrim(String s)  //第一题
        {
                int x,y;
                for(x=0;x<s.length();x++)
                        if(s.charAt(x)!=' ')
                                break;
                for(y=s.length()-1;y>-1;y--)
                        if(s.charAt(y)!=' ')
                                break;
                sop(s.substring(x,y+1));
        }
       
        public static void myRevese(String s,int x,int y)  //第二题
        {
                char [] chs = s.toCharArray();
               
                revese(chs,x,y);
               
                sop(new String(chs));
        }
       
        public static void revese(char [] c,int start,int end )  //第二题
        {
                for(int x=start,y=end;x<y-1;x++,y--)
                {
                        char temp = c[x];
                        c[x]=c[y];
                        c[y]=temp;
                }
        }
       
        public static void getSubCount(String s,String s1) // 第三题
        {
                int count=0,index=0;
                while((index=s.indexOf(s1))!=-1)
                {
                        s=s.substring(index+s1.length());
                        count++;
                }
                sop(count);
        }
       
        public static void getMaxString(String s,String s1) //第四题。
        {
                String max = (s.length()>s1.length())?s:s1;
                String min = (max == s)?s1:s;
                for(int x =0;x<min.length();x++)
                {
                        for(int y=0,z=min.length()-x;z!=min.length()+1;y++,z++)
                        {
                                if(max.contains(min.substring(y,z)))
                                        {
                                        sop(min.substring(y,z));
                                        return;
                                        }
                        }
                }
        }
}

白天看教学视频,晚上一定要把白天的代码都再打两遍,才能在脑海中留有印象,不然过两天就全忘了。这是在成为码农前的历练么?







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2