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;
                }
            }
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章