1、String类方法编程练习题:重点掌握思想
1,需求:将字符串中进行反转。abcde --> edcba
思路:1、因为反转,想到之前做个数组的反转的例子,
1、先将字符串转变为数组。
2、有了数组后直接进行头尾角标元素的位置置换即可
3、将数组转成字符串。
步骤:
1、将字符串转成数组:toCharArray();
2、对数组进行位置置换swap()
3、将数组转成字符串,用字符串构造函数就可以了。
实现代码:
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;start<end;start++,end--)
{
Swap(chs,start,end);
}
Return new String(chs);
}
//对字符串进行位置置换。Swap()
2、需求:对字符串中的字母进行排序,变成有序的字符串。
"bdacxrtq" --> "abcdqrtx";
思路:
1、先把字符串变成数组
2、对数组元素进行排序
3、将数组变成字符串
实现代码:
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;x<chs.length01;x++)
{
For(int y=x+1;y<chs.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"
思路:
1、先要明确字符串中的是否有要查找的字串,如果有,应该记录该字串,的第一次出现的位置.
2、在第一位位置后,对剩余的字符串再次出现该字串查找,并获取位置,
3、以为类推,通过记录数完成字串出现次数的获取。
步骤:
1、定义计数器
2、因为每一次出现的位置不同,所以定义变量记录位置。
3、通过indexof方法获取位置,同时该方法的好处就是可以通过-1判断是否存在。
4、只要存在,就循环查找,并计数,同时要获取查找后的剩余字符串,在剩余字符串继续查找,通过substring(start)就可以了,而start的值就是查找到的角标+字串的长度。
实现代码:
Public static int getSubStringCount(String str,String key)
{
Int count=0;
Int index=0;
While((index=str.intdex(key,index))!=-1)
Index =index+key.length();
Count++;
}
Return count;
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |