Java多种方法实现字符串反转!

来自牛客网

题目描述

接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)。

示例  输入:abcdefg
    输出:gfedcba

解决思路

(主函数中实现)1.从尾元素向前遍历字符串,打印每个位置的字符,实现字符串反转。

(方法的调用)2.将字符串转为字符数组,实现反转效果后,将字符数组转为字符串输出。

①while循环双指针法实现,
②for循环需要注意第变量的终止范围(如数组长度为arr.length,第一个变量i小于arr.length/2,j为arr.length-1-i)。

(内置函数叠加)3.自己认为是内置函数叠加后的结果

实现代码

第一种方法

    public static void main(String[] args){

        Scanner sc = new Scanner(System.in);
        while(sc.hasNextLine()){
            String str = sc.nextLine();
            
            //str.length()获取字符串的长度
            for (int i = str.length()-1; i >= 0; i--) {  
                System.out.print(str.charAt(i));
            }
            System.out.println();
        }
    }

第二种方法

public static void main(String[] args){

        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        System.out.println("字符串反转后结果为:"+getString(str));
        System.out.println("字符串反转后结果为:"+getString1(str));
    }

    public static String getString(String str1) {     //char[]
        char[] arr = str1.toCharArray();
        for (int i = 0; i < arr.length / 2; i++) {
            char tmp = arr[i];
            arr[i] = arr[arr.length - 1 - i];  //相当于j=arr.length-1-i
            arr[arr.length - 1 - i] = tmp;
        }
        return new String(arr);    //将字符数组转换为字符串
    }

    public static String getString1(String str1) {     
        char[] arr = str1.toCharArray();
        int i = 0;
        int j = arr.length-1;
        while(i<=j){
            char tmp = arr[i];
            arr[i] = arr[j];
            arr[j] = tmp;
            i++;
            j--;
        }
        return new String(arr);   //将函数返回的字符数组转换为字符串
    }

第三种方法

public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        StringBuffer str1 = new StringBuffer(str);    //StringBuffer可以改变字符串的值
        System.out.println("字符串反转后结果为: "+str1.reverse().toString());
    }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值