Java算法基础-逆序算法

package com.seatel.testjava;

import java.util.Stack;

/**
 * 关于java算法
 */
public class myClass {

    public static void main(String[] args) {
        String string = "123abc";

        System.out.println(string);

        //非静态方法(非static的方法要先new一个对象才能调用)
        myClass m = new myClass();
        string = m.reverse1(string);

        //静态方法(static方法可通过类名.方法名的方式调用)
        String string1 = reverse2(string);

        System.out.println(string);
        System.out.println(string1);
    }

    //字符串逆序的方法
    public String reverse1(String string) {
        StringBuffer sb = new StringBuffer();
        for (int i = string.length() - 1; i >= 0; i--) {
            sb.append(string.charAt(i));
        }
        return sb.toString();
    }

    public static String reverse2(String string) {
        StringBuffer sb = new StringBuffer(string);
        for (int i = 0, j = sb.length() - 1; i < sb.length() >>> 1; i++, j--) {
            char temp = sb.charAt(i);
            //首
            sb.setCharAt(i, sb.charAt(j));
            //尾
            sb.setCharAt(j, temp);
        }
        return sb.toString();
    }

    public static String reverse3(String string) {
        StringBuffer sb = new StringBuffer();
        Stack<Character> s = new Stack<Character>();
        for (int i = 0; i < string.length(); i++) {
            s.add(string.charAt(i));
        }
        for (int i = 0; i < string.length(); i++) {
            sb.append(s.pop());
        }
        return sb.toString();
    }
}

打印结果:


另外在Android studio中直接运行java程序的方法:

project -> 新建 Module -> Java Library -> Run myClass.main()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值