现在的位置: 首页 > 综合 > 正文

黑马程序员_<>

2018年09月16日 ⁄ 综合 ⁄ 共 2530字 ⁄ 字号 评论关闭

--------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! --------------------

1. 去除空格

     

     模拟取出字符串两边的空格


  思路:

 1.判断字符串第一个字符是不是空格,如果是则继续向后判断,直到不是空格,然后记下此标记

 2.逆向判断字符串,也是直到判断不是空格,记下下标

 3,然后截取字符串即可

public class ThrowSpace {
 
  public static void main(String[] args) {
    System.out.print("--");
    String str = "  abcdef  ";
    System.out.print(method(str));
    System.out.print("--");
 
  }
 
  public static String method(String str) {
    char[] cs = str.toCharArray();
    int x = 0, y = cs.length - 1;
    for (; x < cs.length; x++) {
      if (str.charAt(x) != ' ') {
         break;
      }
    }
    for (; y >= 0; y--) {
      if (str.charAt(y) != ' ') {
         break;
      }
    }
    return str.substring(x , y + 1);
  }
 
}
结果:
--abcdef--

2.     反转

 

 

      
模拟反转字符串


  思路:

 1.将字符串转换成字节数组

 2.然后利用数组的反转功能,对数组反转

 3.然后将反转后的字符数组转成成字符串,返回即可。

 4.要是范围反转,你们就先取出那些要反转的,然后反转后,那么就在加上不反转的部分


public class ReverseString {
  public static void main(String[] args) {
    String str="abcdef";
    System.out.println(reverseString(str));
    String str1="123456789";
    System.out.println(reverseString(str1,3,7));
   
  }
  /*完全反转*/
  public static String reverseString(String str){
    char [] chs=str.toCharArray();
    reverse(chs);
    return new String(chs);
  }
  /*指定范围反转*/
  public static String reverseString(String str,int start,int end){
   
    char [] chs=str.toCharArray();
    String s1=new String(chs,0,start);
    String s2=new String(chs,end,chs.length-end);
    String s3=new String(chs,start,end-start);
    char [] newch=s3.toCharArray();
    reverse(newch);
    return s1+new String(newch)+s2;
  }
  /*反转数组*/
  public static void reverse(char [] cs){
    for(int start=0,end=cs.length-1;start<=end;start++,end--){
      swap(cs,start,end);
    }
  }
  /*交换数组中两个字符位置*/
  public static void swap(char [] cs,int start,int end){
     char temp=cs[start];
     cs[start]=cs[end];
     cs[end]=temp;
  }
 
}
 
结果:
fedcba
123765489

 

3. 计数

   

    

计算字符串中指定字符的个数


    思路:

    1.将字符串转换成数组

     2.定义一个计数器,然后再循环查找数组的元素,每查找到一个,那么计数器增加1

    3.将计算器返回即可



 public class CountString {
   public static void main(String[]args) {
     Stringstr="abcdjasbabsdaeas";
     System.out.println("str中有"+count(str,'a')+"个字符"+'a');
 
   }
   /*开始查找计数*/
   public static int count(Stringstr,char c){
     char [] cs=str.toCharArray();
     int count=0;
     for(char cc:cs){
        if(cc==c)
          count++;
     }
     return count;
   }
 
}
结果:
str中有5个字符a
 

 

 

4.获取字串

   

  

  
获取两个字符串中最大相同子串
(按照长度比较)


  思路:

    1.将短的字符串按照长度递减的方式获取到,

    2.将获取到得子串去长串中判断是否包含

     3.如果包含则找到。


public class getMaxString {
   public static void main(String[] args) {
     String s1="acbdgyangsdds";
     String s2="dayangqxdw";
        System.out.println(getMaxSUbString(s1,s2));
   }
   /*获取最大相同字符串*/
   public static String getMaxSUbString(String s1,String s2){
if(s2.length()>s1.length()){
        String temp=s1;
        s1=s2;
        s2=temp;
     }
     for(int x=0;x<s2.length();x++){
        for(int y=0,z=s2.length()-x;z!=s2.length()+1;y++,z++){
          String temp=s2.substring(y,z);
          if(s1.contains(temp)){
             return temp;
          }
        }
     }
     return "";
   }
 
}
结果:
yang
 

 --------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! --------------------

【上篇】
【下篇】

抱歉!评论已关闭.