1、给定一个字符串数组。按照字典顺序进行从小到大的排序。
* 思路:
* 1,对数组排序。可以用选择,冒泡都行。
* 2,for嵌套和比较以及换位。
* 3,问题:以前排的是整数,比较用的比较运算符,可是现在是字符串对象。
* 字符串对象怎么比较呢?爽了,对象中提供了用于字符串对象比较的功能。
1 public static void sort(String[] strings){ 2 String temp = null; 3 for(int i=0;i<strings.length;i++){ 4 for(int j = i+1;j<=strings.length-1;j++){ 5 if(strings[i].compareTo(strings[j])>0){ 6 temp = strings[i]; 7 strings[i]=strings[j]; 8 strings[j]= temp; 9 } 10 } 11 } 12 }
2、一个子串在整串中出现的次数
* 思路:
* 1,要找的子串是否存在,如果存在获取其出现的位置。这个可以使用indexOf完成。
* 2,如果找到了,那么就记录出现的位置并在剩余的字符串中继续查找该子串,
* 而剩余字符串的起始位是出现位置+子串的长度.
* 3,以此类推,通过循环完成查找,如果找不到就是-1,并对 每次找到用计数器记录。
1 public static int sum(String string,String string1){ 2 int length = string1.length(); 3 int count = 0; 4 int index = string.indexOf(string1); 5 while(index!=-1){ 6 count++; 7 index = string.indexOf(string1,index+length); 8 } 9 return count; 10 }
3、两个字符串中最大相同的子串
* 思路:
* 1,既然取得是最大子串,先看短的那个字符串是否在长的那个字符串中。
* 如果存在,短的那个字符串就是最大子串。
* 2,如果不是呢,那么就将短的那个子串进行长度递减的方式去子串,去长串中判断是否存在。
* 如果存在就已找到,就不用在找了。
1 public static String getMaxSubstring(String s1, String s2) { 2 3 String max = null,min = null; 4 max = (s1.length()>s2.length())?s1:s2; 5 6 min = max.equals(s1)?s2:s1; 7 8 System.out.println("max="+max); 9 System.out.println("min="+min); 10 11 12 13 for (int i = 0; i < min.length(); i++) { 14 15 for(int a = 0,b = min.length()-i; b != min.length()+1; a++,b++){ 16 17 String sub = min.substring(a, b); 18 // System.out.println(sub); 19 if(max.contains(sub)) 20 return sub; 21 } 22 } 23 24 return null; 25 }
4、模拟一个trim功能一致的方法。去除字符串两端的空白
* 思路:
* 1,定义两个变量。
* 一个变量作为从头开始判断字符串空格的角标。不断++。
* 一个变量作为从尾开始判断字符串空格的角标。不断--。
* 2,判断到不是空格为止,取头尾之间的字符串即可。
*/
1 public static String myTrim(String s) { 2 3 int start = 0, end = s.length() - 1; 4 5 while (start <= end && s.charAt(start) == ‘ ‘) { 6 start++; 7 } 8 while (start <= end && s.charAt(end) == ‘ ‘) { 9 end--; 10 } 11 return s.substring(start, end + 1); 12 }
时间: 2024-10-27 17:46:40