Java学习之字符串练习

1、给定一个字符串数组。按照字典顺序进行从小到大的排序。

* 思路:
* 1,对数组排序。可以用选择,冒泡都行。
* 2,for嵌套和比较以及换位。
* 3,问题:以前排的是整数,比较用的比较运算符,可是现在是字符串对象。
* 字符串对象怎么比较呢?爽了,对象中提供了用于字符串对象比较的功能。

 public static void sort(String[] strings){
String temp = null;
for(int i=0;i<strings.length;i++){
for(int j = i+1;j<=strings.length-1;j++){
if(strings[i].compareTo(strings[j])>0){
temp = strings[i];
strings[i]=strings[j];
strings[j]= temp;
}
}
}
}

2、一个子串在整串中出现的次数

* 思路:
* 1,要找的子串是否存在,如果存在获取其出现的位置。这个可以使用indexOf完成。
* 2,如果找到了,那么就记录出现的位置并在剩余的字符串中继续查找该子串,
* 而剩余字符串的起始位是出现位置+子串的长度.

* 3,以此类推,通过循环完成查找,如果找不到就是-1,并对 每次找到用计数器记录。

 public static int sum(String string,String string1){
int length = string1.length();
int count = 0;
int index = string.indexOf(string1);
while(index!=-1){
count++;
index = string.indexOf(string1,index+length);
}
return count;
}

3、两个字符串中最大相同的子串

* 思路:
* 1,既然取得是最大子串,先看短的那个字符串是否在长的那个字符串中。
* 如果存在,短的那个字符串就是最大子串。
* 2,如果不是呢,那么就将短的那个子串进行长度递减的方式去子串,去长串中判断是否存在。
* 如果存在就已找到,就不用在找了。

 public static String getMaxSubstring(String s1, String s2) {

         String max = null,min = null;
max = (s1.length()>s2.length())?s1:s2; min = max.equals(s1)?s2:s1; System.out.println("max="+max);
System.out.println("min="+min); for (int i = 0; i < min.length(); i++) { for(int a = 0,b = min.length()-i; b != min.length()+1; a++,b++){ String sub = min.substring(a, b);
// System.out.println(sub);
if(max.contains(sub))
return sub;
}
} return null;
}

4、模拟一个trim功能一致的方法。去除字符串两端的空白
* 思路:
* 1,定义两个变量。
* 一个变量作为从头开始判断字符串空格的角标。不断++。
* 一个变量作为从尾开始判断字符串空格的角标。不断--。
* 2,判断到不是空格为止,取头尾之间的字符串即可。
*/

 public static String myTrim(String s) {

         int start = 0, end = s.length() - 1;

         while (start <= end && s.charAt(start) == ' ') {
start++;
}
while (start <= end && s.charAt(end) == ' ') {
end--;
}
return s.substring(start, end + 1);
}
上一篇:您真的理解了SQLSERVER的日志链了吗?


下一篇:深入学习Tesseract-ocr识别中文并训练字库的方法