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;
|