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

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;i0)//字符串比较用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

运行:

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

运行:

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类实例))