Java-字符串逆序

递归法

public static String reverse(String value){
    if(value == null || value.length() <=1){
     return value;
    }
    return reverse(value.subString(1)) + value.charAt(0);
}     

二分法

public static String reverse(String value){
    StringBuilder sb = new StringBuilder(value);
    int len = value.length();
    for(int i=0, j=len-1; i<value>>>1; j++){
        char temp = sb.charAt(i);
        sb.setCahrAt(i) = sb.charAt(j);
        sb.setCharAt(j) = temp;
    }
    return sb.toString();
}

末尾遍历法

public static String reverse(String value){
    StringBuilder sb = new StringBuilder();
    for(int i= value.length()-1; i>=0; i--){
        sb.append(value.charAt(i);
    }
    return sb.toString();
}```

顺序遍历法

public static String reverse(String value){
    StringBuilder sb = new StringBuilder();
    String result = "";
    for(int i=0; i< value.length -1; i++){
       result =  value.charAt(i) +result ; 
    }
}

栈入栈出法

public static String reverse(String value){
    StringBuilder sb = new StringBuilder();
    Stack stack = new Stack();
    for(int i=0; i<value.length(); i++){
        stack.add(value.charAt(i));
    }
    for(int i=0; i<value.length(); i++){
        sb.append(stack.pop());
    }
    return sb.toString();
}

你可能感兴趣的:(base)