public class TrimTest { public static void main(String[] args) { String s1=" a bc "; int start=0; int end=s1.length()-1; if(s1!=null){ while(start2.将一个字符串进行反转。将字符串中指定部分进行反转。比如abcdefg反转为abfedcg。 实现方式一:转换为char[] public class ReverseTest { public static void main(String[] args) { String s="abcdefg"; int start=2; int end=s.length()-1; ReverseTest test=new ReverseTest(); String reverse = test.reverse(s, start, end); System.out.println(s); System.out.println(reverse); } public String reverse(String s,int start,int end){ if(s!=null){ char[] chars = s.toCharArray(); for(int i=start,j=end;i实现方式二: 使用String的拼接 //使用String的拼接 public String reverse2(String s,int start,int end){ if(s!=null){ //第1部分 String reverseStr = s.substring(0, start); //第2部分 for(int i=end;i>=start;i--){ reverseStr+=s.charAt(i); } //第3部分 reverseStr+=s.substring(end+1); return reverseStr; } return null; } @Test public void test1(){ String s="abcdefg"; String s1 = reverse2(s, 2, 5); System.out.println(s1); }实现方式三: 使用StringBuffer/StringBuilder替换String//方式三:使用StringBuffer/StringBuilder替换String public String reverse3(String s,int start,int end){ if(s!=null){ StringBuilder builder = new StringBuilder(s.length()); //第1部分 builder.append(s.substring(0,start)); //第2部分 for(int i=end;i>=start;i--){ builder.append(s.charAt(i)); } //第3部分 builder.append(s.substring(end+1)); return builder.toString(); } return null; } @Test public void test2(){ String s="abcdefg"; String s1 = reverse3(s, 2, 5); System.out.println(s1); }3.获取一个字符串在另一个字符串中出现的次数。比如:获取"ab" 在 "abkkcadkabkebfkabkskab " 中出现的次数public class GetCountTest { public int GetCount(String mainStr,String subStr){ if(mainStr.length()>=subStr.length()){ int count=0; int index=0; //方式一: // while((index=mainStr.indexOf(subStr)) !=-1){ // count++; // mainStr=mainStr.substring(index+subStr.length()); // } //方式二: // int indexOf(String str, int fromIndex): // 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始 while ((index=mainStr.indexOf(subStr,index))!=-1){ count++; index+=subStr.length(); } return count; } return 0; } @Test public void test1(){ String s="abkkcadkabkebfkabkskab"; String test="ab"; int i = GetCount(s, test); System.out.println(i); }4.获取两个字符串中最大相同子串。比如:str1 = "abcwerthelloyuiodef“;str2 = "cvhellobnm"
提示:将短的那个串进行长度依次递减的子串与较长的串比较。//情况一:两个字符串中只有一个最大相同子串 public String compare(String s1,String s2){ if(s1!=null && s2!=null){ String maxStr=(s1.length()>=s2.length())? s1:s2; String minStr=(s1.length()=s2.length())? s1:s2; String minStr=(s1.length() 5.对字符串中字符 进行自然顺序排序 。
提示:
1)字符串变成字符数组
2)对数组排序,选择,冒泡 Arrays.sort
3)将排序后的数组变成字符串public String Sort(String s){ if(s!=null){ char[] chars = s.toCharArray(); for(int i=0;ichars[j+1]){ char temp=chars[j]; chars[j]=chars[j+1]; chars[j+1]=temp; } } } //Arrays.sort(chars); return new String(chars); } return null; } @Test public void test(){ String s1="abcwerthelloyuiodef"; String sort = Sort(s1); System.out.println(s1); System.out.println(sort); } 欢迎分享,转载请注明来源:内存溢出
String相关的常见算法题目
1.模拟一个trim方法,去除字符串两端的空格。
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
java目前比较新的技术有哪些?
上一篇
2022-12-17
设计模式之单例模式
下一篇
2022-12-17
评论列表(0条)