JAVA_String 示例

例一 模拟一个trim方法,去除字符串两端的空格。

思路:
1,判断字符串第一个位置是否是空格,如果是继续向下判断,直到不是空格为止。结尾处判断空格也是如此。(需注意:start<=end)
2,当开始和结尾都判断到不是空格时,记下此处的位置,就是要获取的字符串。(使用String substring(int a , int b)方法)

     public static String myTrim(String str)
         {
         int start = 0,end = str.length()-1;
         while(start<=end && str.charAt(start)==' ')
               start++;
         while(start<=end && str.charAt(end)==' ')
               end--;
         return str.substring(start,end+1);
         }
例二 将字符串中指定部分进行反转

思路:
1,将字符串变成数组。(char[] toCharArray()方法)
2,对数组反转。(使用for循环首尾交换)
3,将数组变成字符串。(构造函数: String(char[]))

class Demo{
       public static String reverseString(String s,int start,int end)
          {
             //字符串变数组。
             char[] chs = s.toCharArray();
            //反转数组。
             reverse(chs,start,end);
           //将数组变成字符串。
             return new String(chs);
          }
      public static String reverseString(String s)
         {
            return reverseString(s,0,s.length());   
         }
      private static void reverse(char[] arr,int x,int y)
        {
            for(int start=x,end=y-1; start
例三 获取一个字符串在另一个字符串中出现的次数

思路:
1,定义个计数器。
2,获取kk第一次出现的位置。
3,从第一次出现位置后剩余的字符串中继续获取kk出现的位置。
每获取一次就计数一次。
4,当获取不到时,计数完成。

class  StringTest3
{

    /*
    练习三。

    */
    
    public static int getSubCount(String str,String key)
    {
        int count = 0;
        int index = 0;

        while((index=str.indexOf(key))!=-1)
        {
            sop("str="+str);
            str = str.substring(index+key.length());

            count++;    
        }
        return count;
    }

    /*
    练习三,方式二。

    */
    public static int getSubCount_2(String str,String key)
    {
        int count = 0;
        int index = 0;

        while((index= str.indexOf(key,index))!=-1)
        {
            sop("index="+index);
            index = index + key.length();

            count++;
        }
        return count;
    }

    public static void main(String[] args) 
    {
        String str = "kkabkkcdkkefkks";

        ///sop("count====="+str.split("kk").length);不建议使用。

        sop("count="+getSubCount_2(str,"kk"));
    }

    public static void sop(String str)
    {
        System.out.println(str);
    }
}
例四 获取两个字符串中最大相同子串

思路:
1,将短的那个子串按照长度递减的方式获取到。
2,将每获取到的子串去长串中判断是否包含,如果包含,已经找到!

class  StringTest4
{
    /*
    练习四。
    */
    public static String getMaxSubString(String s1,String s2)
    {

        String max = "",min = "";

        max = (s1.length()>s2.length())?s1: s2;

        min = (max==s1)?s2: s1;
        
//      sop("max="+max+"...min="+min);
        for(int x=0; x

你可能感兴趣的:(JAVA_String 示例)