//1.模拟一个trim方法,去除字符串两端的空格。 public class Test1 { public static void main(String[] args) { String str1=" has a dog "; String str2=mytrim(str1); System.out.println("*********"+str2+"*******"); } public static String mytrim(String str){ if(str==null||str.equals("")){ return ""; } int startIndex=0; int endIndex=str.length(); char[] strCharArray=str.toCharArray(); for(int i=0;i<strCharArray.length;i++){ if(!Character.isSpaceChar(strCharArray[i])){ startIndex=i; break; } if(i==strCharArray.length-1){ return ""; } } for(int j=strCharArray.length-1;j>=0;j--){ if(!Character.isSpaceChar(strCharArray[j])){ endIndex=j+1; break; } } return str.substring(startIndex,endIndex); } }
输出结果:
*********has a dog*******
比如“abcdefg”反转为“abfedcg”。
/* 2.将一个字符串进行反转。将字符串指定部分进行反转。 比如“abcdefg”反转为“abfedcg”。 */ public class Test2 { public static void main(String[] args) { String str1 = new String("abcdefg"); String str2=reverse(str1,2,5); System.out.println(str2); } public static String reverse(String str, int startIndex, int endIndex) { if (str == null || str.equals("")) { return ""; } char[] strArr = str.toCharArray(); if (startIndex > str.length() || startIndex < 0 || endIndex < startIndex || endIndex > str.length()) { return "索引有误"; } for (int i = startIndex, j = endIndex-1; i < j; i++, j--) { char tmp = strArr[i]; strArr[i] = strArr[j]; strArr[j] = tmp; } return new String(strArr); } }
输出结果:
abedcfg
比如:获取“ab”在abkkcadkabkebkabkskab“中出现的次数。
/* 3.获取一个字符串在另一个字符串中出现的次数。 比如:获取“ab”在abkkcadkabkebkabkskab“中出现的次数。 */ public class Test3 { public static void main(String[] args) { String str1="abkkcadkabkebkabkskab"; int count=getCount(str1,"ab"); System.out.println(count); } public static int getCount(String str1,String str2){ int count=0; if(str2.length()>str1.length()){ return -1; } for (int i = 0; i <=(str1.length()-str2.length()) ; i++) { if(str1.startsWith(str2,i)){ count++; } } return count; } }
输出结果
4
比如:str1=“abcwertthelloyuiodef”;str2=“cvhellobnm”
提示:将短的那个串进行长度依次递减的子串与较长的串比较。
/* 4.获取两个字符串中最大的相同子串。 比如:str1=“abcwertthelloyuiodefabcde”;str2=“cvhellobnmabcde” 提示:将短的那个串进行长度依次递减的子串与较长的串比较。 */ public class Test4 { public static void main(String[] args) { String str1="abcwertthelloyuiodefabcde"; String str2="cvhellobnmabcde"; String[] sameArr=findSameStr(str1,str2); System.out.println(Arrays.toString(sameArr)); } public static String[] findSameStr(String maxStr,String minStr){ if(maxStr.length()<minStr.length()){ String temp=minStr; minStr=maxStr; maxStr=temp; } StringBuilder sameStr=new StringBuilder(); for (int i=minStr.length();i>0;i--){ for(int j=0;j+i<=minStr.length();j++){ String sub=minStr.substring(j,j+i); if(maxStr.contains(sub)){ sameStr.append(sub+","); } } if(sameStr.length()!=0){ break; } } return sameStr.toString().split(","); } }
输出结果
[hello, abcde]
提示:
字符串变成字符数组。
对数组排序,选择,冒泡,Arrays.sort();
将排序后的数组变成字符串。
public class Test5 { public static void main(String[] args) { String str1="fdafsadaka234kak1"; String str2=sortString(str1); System.out.println(str2); } public static String sortString(String str){ char[] strArr=str.toCharArray(); Arrays.sort(strArr); return new String(strArr); } }
输出结果
1234aaaaaddffkkks
](https://www.bilibili.com/video/BV1Kb411W75N?p=477&spm_id_from=pageDriver)***