黑马程序员——String(字符串练习)

来源:互联网 发布:悉尼大学金融硕士 知乎 编辑:程序博客网 时间:2024/06/06 14:08


-----------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学习型技术博客、期待与您交流!------------





0 0