温习一下白天看的教学视频内容,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;
}
}
}
}
}
白天看教学视频,晚上一定要把白天的代码都再打两遍,才能在脑海中留有印象,不然过两天就全忘了。这是在成为码农前的历练么?
|
|