javaSE基础-String类练习,手写字符串反转、获取最大包含字符串

/**
     * 字符串去除两端空格
     */
    @Test
    public void test1(){
        String str = "   adfadsfasdf   ";
        int start = 0,end = str.length()-1;
        while(start <= end && str.charAt(start) == ' '){
            start ++;
        }
        while(start <= end && str.charAt(end) == ' '){
            end --;
        }
        System.out.println(str.substring(start, end+1));
    }

    /**
     * 字符串反转
     */
    @Test
    public void reverseStr(){
        String str = "abcdefg";
        //字符串边数组
        char[] strArr = str.toCharArray();
        //反转数组
        reversArr(strArr);
        //将数组转换成字符串
        String nStr = new String(strArr);
        System.out.println(nStr);
    }

    //反转char类型数组
    private void reversArr(@NotNull char[] chars){
        for(int start = 0,end = chars.length-1; start < end; start++,end--){
            swap(chars, start, end);
        }
    }

    //交换方法
    private void swap(@NotNull char[] arr, int start, int end){
        char tempChar = arr[start];
        arr[start] = arr[end];
        arr[end] = tempChar;
    }

    /**
     * 获取两字符串中最大相同的字符串
     */
    @Test
    public void getMaxSubString(){
        String s1 = "qwerqwhellosfas";
        String s2 = "bcvhellods";
        //获取其中最小长度的字符串
        String minLengthStr = s2;
        if(s2.length() > s2.length()){
            minLengthStr = s1;
        }
        wai:for (int x = 0; x< s2.length(); x++){
            for (int y = 0, z = s2.length() - x; z != s2.length()+1; y++,z++){
                String tempStr = s2.substring(y, z);
                if(s1.contains(tempStr)){
                    System.out.println(tempStr);
                    break wai;
                }
            }
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章