zoukankan      html  css  js  c++  java
  • 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     }
  • 相关阅读:
    Fiddler-常用技巧
    Fiddler-工作原理
    C语言-EOF和feof()判断文件结尾的区别
    C语言-一个fopen函数中未使用二进制模式(b)引发的血案
    VIM-不常用或不知道的技巧
    C语言-srand种子详解
    C语言-字符串操作函数
    C语言-Makefile经典教程(掌握这些足够)
    分布拟合——正态/拉普拉斯/对数高斯/瑞利 分布
    曲线拟合——(2)拉普拉斯/瑞利/对数正态 曲线
  • 原文地址:https://www.cnblogs.com/sunfie/p/4802678.html
Copyright © 2011-2022 走看看