逆序遍历字符串(不改变内存地址)

本文介绍了如何在Java中使用StringBuilder实现字符串我本将心照明月的逆序遍历,以及两种方法:逐字符追加到可变字符串尾部和先顺序遍历再逆序拼接。
摘要由CSDN通过智能技术生成

题目:逆序遍历字符串"ABCDEFG"

实现思路:

使用StringBuilder创建对象,因为String字符串是不可变的,而StringBuilder内部的方法没有被final关键字修饰,所以将s1的字符串内容传给StringBuilder创建的对象ret1和ret2,内容就可以被改变,而s1的内存地址不会改变。

代码实现:

package com.ztt.Demo01;

public class demo17 {

	public static void main(String[] args) {
		
		String s1="ABCDEFG";
		
		//方式1:逆序遍历,追加拼接至可变字符串的尾部
		StringBuilder ret1=new StringBuilder();
		for(int i=s1.length()-1;i>=0;i--) {
			char c=s1.charAt(i);
			ret1.append(c);//当前字符串拼接在字符串尾部
		}
		System.out.println(ret1);
		
		//方式2:
		StringBuilder ret2=new StringBuilder();
		ret2.reverse();//逆序
		System.out.println(ret2);
	}

}

输出结果:

GFEDCBA

 源码分析:

 

题目:逆序遍历字符串“我本将心照明月”

实现思路:

方式1:使用逆序遍历

方式2:使用顺序遍历

public class demo08 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String s="我本将心照明月";
		
		//保存逆序字符
		String ret="";
		//方式1:逆序
		
		for(int i=s.length()-1;i>=0;i--) {
			ret=ret+s.charAt(i);
		}
			System.out.println(ret);
		//方式2:顺序
		ret="";
		for(int i=0;i<s.length();i++) {
			ret=s.charAt(i)+ret;
		}
			System.out.println(ret);
		}

	}

输出结果:

月明照心将本我
月明照心将本我

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值