java大白入门实例15之《对字符串反转-详解》

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 java大白入门实例15之《对字符串反转-详解》,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

1、使用charAt获取每个字符串的单个字符,再进行拼接

注意:charAt() 方法返回指定索引处的char值。索引范围是从0到length() – 1

public class java_15 {
    public static void main(String[] args) {
//        调用
        System.out.println(reverse("sjopiu"));
    }
    public static String reverse(String str){
        int len = str.length();
        String res = "";
//        用charAt()传入索引,获取每个字符
        for (int i=len-1;i>=0;i--){
            res = res+str.charAt(i);
        }
        return res;
    }
}

java大白入门实例15之《对字符串反转-详解》

 2、利用toCharArray() 方法将字符串转换为字符数组,通过获取字符数组的字符反转

public class java_15 {
    public static void main(String[] args) {
//        调用
        System.out.println(reverse1("sjopiu"));
    }
//    使用toCharArray
    public static String reverse1(String str){
        char[] chars = str.toCharArray(); //将字符串转为字符串数组
        String res = "";
        for (int i=0;i<chars.length;i++){
            res = chars[i]+res;//此时chars[i]就可以直接像数组这样访问每个元素
        }
        return res;
    }
}

3、利用StringBuffer()自带的reverse方法

StringBuffer又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用【可以改变该序列的长度和内容】。原来StringBuffer是个字符串的缓冲区,即就是它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作  

 StringBuffer的方法使用:

public class java_15 {
    public static void main(String[] args) {
//        调用
        System.out.println(reverse2("sjopiu"));
    }
//    使用StringBuffer
    public static String reverse2(String str){
        String res = new StringBuffer(str).reverse().toString();
        return res;
    }
}

 注意:里面用到了StringBuffer的链式调用new StringBuffer(str).reverse().toString(),这样写是因为调用了StringBuffer方法之后会返回一个对象,因此我们需要在反转之后再把它转为字符串。

 4、使用stack堆栈,先进后出的原理,实现反转

import java.util.Stack;

public class java_15 {
    public static void main(String[] args) {
//        调用
        System.out.println(reverse3("sjopiu"));
    }
//    使用堆栈
    public static String reverse3(String str){
        char[] chars = str.toCharArray();
        Stack<Character> stack = new Stack<Character>();
        String res = "";
//        入栈
        for (int i=0;i<chars.length;i++){
            stack.push(chars[i]);
        }
//        出栈
        for (int i=0;i<chars.length;i++){
            res+=stack.pop();
        }
        return res;
    }
}

 Stack是栈;特点是:先进后出。

它提供了通常的 push 和 pop 操作,以及取栈顶点的 peek 方法、测试堆栈是否为空的 empty 方法、在堆栈中查找项并确定到栈顶距离的 search 方法。 

push(E item)  把项压入堆栈顶部。 
pop()  移除堆栈顶部的对象,并作为此函数的值返回该对象。 
peek()  查看堆栈顶部的对象,但不从堆栈中移除它。 
boolean empty()  测试堆栈是否为空。  
int search(Object o)  返回对象在堆栈中的位置,以 1 为基数。

看你喜欢哪种方法就用哪种~
 

上一篇:java14–对整数的反转

下一篇:java16–求整数的阶乘和阶乘原理

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/149722.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!