学习-Java字符串之StringBuffer类之单词反转

任务描述

本关任务:接收给定字符串,将字符串中的各个单词的字母顺序反转,例如:

 
  1. oT eb ro ton ot eb

反转后变为:

 
  1. To be or not to be

相关知识

StringBuffer类

StringBuffer 类和 String 类一样,也用来定义字符串,它们之间的区别在于: 1.由于 StringBuffer 的内部实现方式和 String 不同,StringBuffer 在进行字符串处理时(比如字符串拼接),不生成新的对象,所以在内存使用上,StringBuffer 类要优于 String 类。

2.StringBuffer 长度和内容可变,String 不可变(比如 StringBuffer 提供一个 append 方法在原字符串对象上追加字符串长度)。

StringBuffer类的对象的初始化

通常情况下使用构造方法对其进行初始化:

 
  1. StringBuffer stringBuffer = new StringBuffer();

这样初始化出的 StringBuffer 对象是一个空的对象。

如果需要创建带有内容的 StringBuffer 对象,则可以使用:

 
  1. StringBuffer stringBuffer = new StringBuffer("Hello World!");

这样初始化出的 StringBuffer 对象的内容就是字符串"Hello World!"。

StringBuffer类的常用方法

StringBuffer 类中存在很多和 String 类一样的方法,这些方法在功能上是完全一样的。但它也有一些独特的方法,用于帮助我们更方便的实现某些功能。

append()方法

append()方法的作用是追加内容到当前 StringBuffer 对象的末尾,类似于字符串的连接,请看示例:

 
  1. StringBuffer stringBuffer = new StringBuffer("Hello");
  2. stringBuffer.append("World!");
  3. System.out.println(stringBuffer);

执行结果为:

 
  1. HelloWorld!

reverse()方法

reverse()方法将把当前字符序列反转后返回,请看示例:

 
  1. StringBuffer stringBuffer = new StringBuffer("abc");
  2. System.out.println(stringBuffer.reverse());

执行结果为:

 
  1. cba

insert(int index,context)方法

insert() 方法的作用是在 StringBuffer 对象中的指定索引位置插入内容(整数、字符串、字符等),然后形成新的字符串。例如:

 
  1. StringBuffer sb = new StringBuffer(“TestString”);
  2. // 把false插入原字符串中,false在新字符串中的索引值为4
  3. sb.insert(4,false);
  4. System.out.println(sb);

执行结果为:

 
  1. TestfalseString

setCharAt(int index,char c)方法

setCharAt() 方法的作用是在 StringBuffer 对象中的指定索引位置插入一个字符,然后形成新的字符串。例如:

 
  1. StringBuffer sb = new StringBuffer(“TestString”);
  2. // 把字符y插入原字符串中,y在新字符串中的索引值为0
  3. sb.setCharAt(0,'y');
  4. System.out.println(sb);

执行结果为:

 
  1. yTestString

charAt(int index)方法

charAt() 方法的作用是获取指定索引的字符。例如:

 
  1. StringBuffer sb = new StringBuffer(“TestString”);
  2. System.out.println(charAt(0));

执行结果为:

 
  1. T

delete(int start,int end)方法

delete() 方法的作用是删除指定索引范围内的字符。例如:

 
  1. StringBuffer sb = new StringBuffer(“TestString”);
  2. // 索引值含左不含右
  3. sb.delete(0,2);
  4. System.out.println(sb);

执行结果为:

 
  1. stString

replace(int start,int end,String str)方法

replace() 方法的作用是把指定索引范围的字符串替换成指定字符串。例如:

 
  1. StringBuffer sb = new StringBuffer(“TestString”);
  2. // 索引值含左不含右
  3. sb.replace(0,2,"aaaa");
  4. System.out.println(sb);

执行结果为:

 
  1. aaaastString

StringBuffer对象和String对象互转

注意,StringBuffer 和 String 属于不同的类型,也不能直接进行强制类型转换,下面的代码都是错误的:

 
  1. StringBuffer s = "abc"; // 赋值类型不匹配
  2. StringBuffer s = (StringBuffer)"abc"; // 不存在继承关系,无法进行强转

正确的对象之间互转代码如下:

 
  1. String string1 = "Hello World!";
  2. // String转换为StringBuffer
  3. StringBuffer stringBuffer = new StringBuffer(string1);
  4. // StringBuffer转换为String
  5. String string2 = stringBuffer.toString();
    import java.util.Scanner;
    
    public class Str {
    
        public static void main(String[] args) {
    
                // 请在Begin-End间编写代码
                /********** Begin **********/
    
                // 第一步:接收给定的字符串
                Scanner input = new Scanner(System.in);
                String str = input.nextLine();
                // 第二步:创建StringBuffer对象
                StringBuffer strBf;
                // 第三步:切割字符串
                String[] array = str.split(" ");
                // 第四步:反转单词
                System.out.print("反转后的字符串:");
                for(String i : array){
                    strBf = new StringBuffer(i);
                    strBf = strBf.reverse();
                // 第五步:输出反转后的字符串
                System.out.print(strBf + " ");
                }
                /********** End **********/
    
        }
    }
    

  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摸鱼的三金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值