-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
/*
练习一:
*模拟一个trim方法,去除字符串两端的空格。
* 思路:
* 1、判断字符串第一个位置是否是空格,如果是继续向下判断,直到不是空格为止。
* 结尾处判断到不是空格时,就是要获取的字符串。
*
*/
public static String Mytrim(String str)
{
int star = -1;
int end = -1;
String outstr ;
if(str.isEmpty())
throw new RuntimeException();
for(int i = 0; i<str.length();i++)
if(str.charAt(i)!=' ')
{
star = i;
break;
}
for(int i = str.length()-1; i>0;i--)
if(str.charAt(i)!=' ')
{
end = i;
break;
}
outstr = str.substring(star, end+1);
return outstr;
}
优化代码:
public static String myTrim(String str)
{
int start = 0,end = str.length()-1;
while(start<=end && str.charAt(start)==' ')
start++;
while(start<=end && str.charAt(end)==' ')
end--;
return str.substring(start, end+1);
}
// 将一个字符串进行反转。将字符串中指定部分进行反转,“abcdefg”;abfedcg
//1、将字符串变成数组,对数组反转。
//2、将反转后的数组变成字符串。
//3、只要将反转部分的开始和结束位置作为参数传递即可。
public static String myreverse(String str,int start,int end)
{ end--;//包含头不包含尾。
if(start>end)
throw new RuntimeException();
char[] chs = str.toCharArray();
char temp ;
while(start<end)
{
temp = chs[start];
chs[start] = chs[end];
chs[end] = temp;
end--;
start++;
}
return new String(chs);
}
练习三:
* 获取一个字符串在另一个字符串中出现的次数。
* “abkkcdkkefkkskk”
* 1、定义一个计数器。
* 2、获取kk第一次出现的位置。
* 3、从第一次出现位置后剩余的字符串中继续获取kk出现的位置。
* 没获取一次就计数一次。
* 4、当获取不到时,计数完成。
*/
public static int myStringCount(String str,String Otherstr)
{
int count = 0;
int fromIndex = str.indexOf(Otherstr, 0);
while(fromIndex!=-1)
{
count++;
fromIndex = str.indexOf(Otherstr, fromIndex+1);
}
return count;
}
/*
* 获取两个字符串中最大相同子串。第一个动作:将短的那个串进行长度一次递减的子串打印。
* “abcwerthelloyuiodef”
* “cvhellobnm”
* 思路:
* 1、将短的那个子串按照长度递减的方式获取到。
* 2、将每次获取到的子串去长串中判断是否包含。
* 如果包含,就已经找到。
*/
public static String TheMaxString(String str1,String str2)
{
String MaxLengthstr ;;
String MinLengthstr ;;
if(str1.length()>=str2.length())
{
MaxLengthstr = str1;
MinLengthstr = str2;
}
else
{
MaxLengthstr = str2;
MinLengthstr = str1;
}
String temp;
int beginIndex;
int endIndex;
int length = MinLengthstr.length();
while(length>0)
{
beginIndex = 0;
endIndex = beginIndex+length;
do
{
temp = MinLengthstr.substring(beginIndex, endIndex);
if(MaxLengthstr.contains(temp))
return temp;
beginIndex++;
endIndex++;
}
while(endIndex<MinLengthstr.length());
length--;
}
return "";
}
----------- android 培训 、 java培训 、java学习型技术博客、期待与您交流!------------