美文网首页
java笔记--常用对象Api(String类实例)

java笔记--常用对象Api(String类实例)

作者: 吃饱喝足搬代码丶 | 来源:发表于2018-08-09 23:33 被阅读0次

    1.给定一个字符串数组,按照字典顺序进行从小到大的排序。
    {"nba","abc","cba","zz","qq","haha"}

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

    public class Test1 {
    
        public static void main(String[] args) {
             
            String[] arr={"nba","abc","cba","zz","qq","haha"};
            
            printArray(arr);
            sortString(arr);
            printArray(arr);
    
        }
    
        public static void sortString(String[] arr) {
            
            for(int i=0;i<arr.length-1;i++){
                for(int j=i+1;j<arr.length;j++){
                    
                    if(arr[i].compareTo(arr[j])>0)//字符串比较用compareTo
                        swap(arr,i,j);
                }
            }
            
        }
    
        public static void swap(String[] arr, int i, int j) {
    
            String temp=arr[i];
            arr[i]=arr[j];
            arr[j]=temp;
            
        }
    
        public static void printArray(String[] arr) {
            
            System.out.print("[");
            for(int i=0;i<arr.length;i++){
                if(i!=arr.length-1)
                    System.out.print(arr[i]+",");
                else
                    System.out.println(arr[i]+"]");
            }   
        }
    }
    
    运行:

    2,一个子串在整串中出现的次数
    "nbaernbatynbauinbaopnba"
    思路:
    1.使用indexOf获取其出现的位置
    2.如果找到了,记录位置并在剩余的字符串中继续查找该子串,
    而剩余字符串的起始位的出现位置+子串长度
    3.以此类推,通过循环完成查找,如果找不到就是-1,并对 没词找到用计数器记录。

    public class Test2 {
    
        public static void main(String[] args) {
            
            String str="nbaernbatynbauinbaopnba";
            String key="nba";
    //      getKeyStringCount(str,key);
            int count=getKeyStringCount_2(str,key);
            System.out.println("count="+count);
    
        }
    //  获取子串在整串中出现的次数。
        public static int getKeyStringCount(String str, String key) {
            
    //      1,定义计数器
            int count=0;
            
    //      2,定义变量记录key出现的位置
            int index=0;
            
            while((index=str.indexOf(key))!=-1){
                
                str=str.substring(index+key.length());
                count++;
            }
            return count;
        }
    
        private static int getKeyStringCount_2(String str, String key) {
            
            int count=0;
            int index=0;
            
            while((index=str.indexOf(key,index))!=-1){
                
                index=index+key.length();
                count++;
                
            }
            return count;
        }
    }
    
    运行:

    3,两个字符串中最大相同子串。
    "qwerabcdtyuiop"
    "xcabcdvbn"

    思路:
    1先看短的那个字符串是否在唱的那个字符串中
    若存在,短的那个字符串就是最大子串
    2如果不是,就将短的字符串进行长度递减的方式去掉子串,去长传中判断是否存在。
    如存在就已找到,就不用再找了。

    public class Test3 {
    
        public static void main(String[] args) {
            
            String s1="qwerabcdtyuiop";
            String s2="xcabcdvbn";
            
            String s=getMaxSubstring(s2,s1);
            System.out.println("s="+s);
    
        }
    
        public static String getMaxSubstring(String s2, String s1) {
            
            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 class Test4 {
    
        public static void main(String[] args) {
            String s="   ab  c   ";
            
            s=myTrim(s);
            System.out.println("-"+s+"-");
    
        }
    
        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);
        }
    
    }
    
    运行:

    相关文章

      网友评论

          本文标题:java笔记--常用对象Api(String类实例)

          本文链接:https://www.haomeiwen.com/subject/sdehbftx.html