☆1.模拟一个trim()方法,去除字符串两端的空格。
public String myTrim(String str){ int start = 0; int end = str.length() - 1; while(start < end && str.charAt(start) == ' '){ start++; } while(start < end && str.charAt(end) == ' '){ end--; } if(start == end && str.charAt(start) == ' '){ return ""; } return str.substring(start, end + 1); }
2.将一个字符串反转,将字符串中指定部分进行反转。比如“abcdefg”反转为“abfedcg”。
public String myReverse(String str, int start, int end){ char[] charArray = str.toCharArray(); while (start < end){ char temp = charArray[start]; charArray[start] = charArray[end]; charArray[end] = temp; start++; end--; } return new String(charArray); }
Note:需要加上边界条件,"str != null"
3.获取一个字符串在另一个字符串中出现的次数。比如获取“ab”在“abskfjdlabajbalkjab”中出现的次数。
// 三种方法 public int myCount3(String str1, String str2){ int count = 0; int index = 0; while (str2.indexOf(str1,index) != -1){ count++; index = str2.indexOf(str1,index) + str1.length(); } return count; } public int myCount2(String str1, String str2){ int count = 0; while (str2.indexOf(str1) != -1){ count++; str2 = str2.substring(str2.indexOf(str1) + str1.length()); } return count; } public int myCount1(String str1, String str2){ int count = 0; int index2 = 0; int len = str1.length(); while (index2 < str2.length()){ if (str2.charAt(index2) == str1.charAt(0)){ String temp = str2.substring(index2,index2+len); if (temp.equals(str1)){ count++; index2 += len; continue; } } index2++; } return count; }
☆☆4.获取两个字符串中最大相同字串,例s1="asdafghjka", s2="aaasdfg" 他们的最大子串为"asd" 。(假设最大字串只有一个,如果有多个用list添加)
最优解思路:将短的那个串长度依次递减的字串与长串比较!
public String mySubString(String str1,String str2){ String longStr = str1.length() >= str2.length() ? str1 : str2; String shortStr = str1.length() < str2.length() ? str1 : str2; int len = shortStr.length(); for (int i = 0; i < len; i++) { for (int x = 0,y=len-i; y <= len; x++,y++) { String temp = shortStr.substring(x,y); if (longStr.contains(temp)){ //str1.indexOf(temp) != -1 return temp; } } } return null; }
Note:需要加上边界条件,"str != null"
5.对字符串中的字符进行自然顺序排序。
思路:转化为字符数组进行排序。
public String mySort(String str){ char[] charArray = str.toCharArray(); Arrays.sort(charArray); return new String(charArray); }