已打StringBuffer基本数据类型的封装总结.doc
文本预览下载声明
传智播客java 基础 许正
PAGE
PAGE - 12 -
专注、目标、勤奋、坚持、执行力
Day15总结:
String类方法编程练习题:重点掌握思想
1,需求:将字符串中进行反转。abcde -- edcba
思路:1、因为反转,想到之前做个数组的反转的例子,
先将字符串转变为数组。
有了数组后直接进行头尾角标元素的位置置换即可
将数组转成字符串。
步骤:
将字符串转成数组:toCharArray();
对数组进行位置置换swap()
将数组转成字符串,用字符串构造函数就可以了。
实现代码:
Public static void main(String[] arsg)
{
String str=abcde;
Str=reverseString(str);
Sop(str);
}
//对制定字符串进行反转。接收一个反转的字符串,返回反转后的字符串。
Public static String reverseString(String str)
{
//将字符串变成字符数组。
Char[] chs=str.toCharArray();//这里对字串转成字符数组的方法应用还??是很熟悉,应该多花时间补。
//对数组进行遍历完成头尾角标元素的置换。
For(int start=0,end=chs.length-1;startend;start++,end--)
{
Swap(chs,start,end);
}
Return new String(chs);
}
//对字符串进行位置置换。Swap()
2、需求:对字符串中的字母进行排序,变成有序的字符串。
bdacxrtq -- abcdqrtx;
思路:
先把字符串变成数组
对数组元素进行排序
将数组变成字符串
实现代码:
Public static String sortString(String str)
{
将字符串变成数组
Char[] chs=getCharArray(str);
对数组进行排序
sortCharArray(chs);
将排序后的数组变成字符串
String temp=new String(chs);
Return temp;
}
//对字符数组进行排序
Public static void sortCharArray(char[] chs)
{
For(int x=0;xchs.length01;x++) {
For(int y=x+1;ychs.length;y++)
{
If(chs[x]chs[y])
Swap(chs,x .y)
}
}
}
Swap()//在此省略不写
Public static char[] getCharArray(String str)
{
Char[] chs=str.toCharArray();
Return chs;
}
3、需求:获取一个字符串在另一个字符串中出现的 次数。
kk kksdfkkghkkjekkrtkk
思路:
先要明确字符串中的是否有要查找的字串,如果有,应该记录该字串,的第一次出现的位置.
在第一位位置后,对剩余的字符串再次出现该字串查找,并获取位置,
以为类推,通过记录数完成字串出现次数的获取。
步骤:
定义计数器
因为每一次出现的位置不同,所以定义变量记录位置。
通过indexof方法获取位置,同时该方法的好处就是可以通过-1判断是否存在。
只要存在,就循环查找,并计数,同时要获取查找后的剩余字符串,在剩余字符串继续查找,通过substring(start)就可以了,而start的值就是查找到的角标+字串的长度。
实现代码:
Public static int getSubStringCount(String str,String key)
{
Int count=0;
Int index=0;
While((index=dex(key,index))!=-1)
Index =index+key.length();
Count++;
}
Return count;
4,获取两个字符串最大相同子串。
xcvcctvb tyuicctvonmyui
思路:1、对短的字串进行判断,用第一个角标元素和最后一个角标元素,也就是0到length()-1;如果没有,则缩短范围,1到length()-1;或者0到length()-2;依次这样下去,但是判断当了length()+1时就表示没有包含的字串。发现随着字符串比较次数的增加,每次判断的次数也在递增,所以可以用到大圈套小圈的原理
实现代码:
Public static String getMaxSubString(String s1,String s2)
{
String max,min;定
显示全部