//1.模拟一个trim方法,去除字符串两端的空格。 public String MyTrim(String str){ int beginIndex = 0; int endIndex = 0; String newstr; for(int i=0;i<str.length();i++){ //char c = str.charAt(i); // if((String.valueOf(c)) != " "){ if(str.charAt(i)!= ' '){ //注意 ' '为char型," "为String型 beginIndex = i; break; } } for(int i=str.length()-1;i>=0;i--){ if(str.charAt(i)!= ' '){ endIndex = i; break; } } newstr = str.substring(beginIndex, endIndex+1); return newstr; }
//2.将一个字符串进行反转。将字符串中指定部分进行反转。比如将“abcdefg”反转为”abfedcg” public String reverseString(String str,int begin,int end){ char[] c = str.toCharArray(); return reverseChar(c,begin,end); } public String reverseChar(char[] c,int begin,int end){ for(int x=begin,y=end;x<y;x++,y--){ char num = c[x]; c[x] = c[y]; c[y] = num; } return new String(c); }
/*3 获取一个字符串在另一个字符串中出现的次数。比如:获取“ ab”在 “abkkcadkabkebfkabkskab” 中出现的次数 */ public int countStr(String str1,String str2){ int i; int count = 0; while((i= str2.indexOf(str1))!=-1){ //优化代码 count++; str2 = str2.substring(i+str1.length()); } return count; }
/* *4 获取两个字符串中最大相同子串。比如: str1 = "abcwerthelloyuiodef“;str2 = "cvthellobnm" 提示:将短的那个串进行长度依次递减的子串与较长 的串比较。 */ public List<String> getSubString(String s1,String s2){ String minstr = (s1.length()<s2.length())?s1:s2; String maxstr = (s1.length()>s2.length())?s1:s2; List<String> list = new ArrayList(); for(int t=0;t<minstr.length();t++){ for(int i=0,j=minstr.length()-1-t;i<j&&j<minstr.length();i++,j++){ String minsp = minstr.substring(i, j); if(maxstr.contains(minsp)){ list.add(minsp); } } if(list.size()!= 0){ return list; } } return null; }
/* * 5.对字符串中字符进行自然顺序排序。 提示: 1)字符串变成字符数组。 2)对数组排序,选择,冒泡,Arrays.sort(); 3)将排序后的数组变成字符串。 */ public String toArrays(String s){ char[] c = s.toCharArray(); Arrays.sort(c); //return new String(c); return String.valueOf(c); }