Java学习之字符串练习

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     }

 

posted @ 2015-09-12 10:50  天~宇~翱~翔  阅读(841)  评论(0编辑  收藏  举报