1.指定字符串逆序
三种方式
Ⅰ.转换为字符数组,指定开始位置和结束位置反转
Ⅱ.String字符串拼接,分为三部分,第一部分和第三部分取子串用substring保持不变,中间部分反转
Ⅲ.使用StringBuilder appen,方法添加字符串跟Ⅱ类似
public class Stringreverse { public static void main(String[] args) { String s1 ="aaacccbbb"; String s2 = reverse1(s1, 3, 8); System.out.println(s2); String s3 = reverse2(s1, 3, 8); System.out.println(s3); String s4 = reverse3(s1, 3, 8); System.out.println(s4); } //方式一转换为char[]数组 public static String reverse1(String str,int startindex,int endindex){ if (str!=null||str.length()!=0) { char[] arr = str.toCharArray(); for (int i = startindex, j = endindex;i<j;i++,j--){ char temp = arr[j]; arr[j] =arr[i]; arr[i] =temp; } return new String(arr); } return null; //方式二String拼接 } public static String reverse2(String str,int startindex,int endindex){ if (str!=null||str.length()!=0) { String str1 = str.substring(0, startindex); for (int i=endindex;i>=startindex;i--) { str1 +=str.charAt(i); } String str2 = str.substring(endindex + 1); str1 +=str2; return str1; } return null; } //方式三StringBuilder append方法添加字符串 public static String reverse3(String str,int startindex,int endindex){ if (str!=null||str.length()!=0) { StringBuilder xxs = new StringBuilder(str.length()); xxs.append(str.substring(0,startindex)); for (int i=endindex;i>=startindex;i--) { xxs.append(str.charAt(i)); } xxs.append(str.substring(endindex+1)); return xxs.toString(); } return null; } }
结果
2.查找字符串子串个数这里使用String.indexof(tring str, int fromIndex)方法,指定主字符串和子字符串,如果返回值不为-1,就增加计数,然后fromlndex变为初始索引位置加子字符串长度再次查找
public class StringMethodTest { public static void main(String[] args) { String xxs = "AAVVAAVVAAAAAAA"; String xxs1="AA"; int i = stringDemo(xxs, xxs1); System.out.println(i); } public static int stringDemo(String mainstr, String substr){ int slen = substr.length(); int mlen = mainstr.length(); int count= 0; int index= 0; if (mlen>slen) { while( (index = mainstr.indexOf(substr,index))!=-1) { count++; index+=slen; } return count; } else { return 0; } } }
结果