任务描述
本关任务:接收给定字符串,将字符串中的各个单词的字母顺序反转,例如:
oT eb ro ton ot eb
反转后变为:
To be or not to be
相关知识
StringBuffer类
StringBuffer 类和 String 类一样,也用来定义字符串,它们之间的区别在于: 1.由于 StringBuffer 的内部实现方式和 String 不同,StringBuffer 在进行字符串处理时(比如字符串拼接),不生成新的对象,所以在内存使用上,StringBuffer 类要优于 String 类。
2.StringBuffer 长度和内容可变,String 不可变(比如 StringBuffer 提供一个 append 方法在原字符串对象上追加字符串长度)。
StringBuffer类的对象的初始化
通常情况下使用构造方法对其进行初始化:
StringBuffer stringBuffer = new StringBuffer();
这样初始化出的 StringBuffer 对象是一个空的对象。
如果需要创建带有内容的 StringBuffer 对象,则可以使用:
StringBuffer stringBuffer = new StringBuffer("Hello World!");
这样初始化出的 StringBuffer 对象的内容就是字符串"Hello World!"。
StringBuffer类的常用方法
StringBuffer 类中存在很多和 String 类一样的方法,这些方法在功能上是完全一样的。但它也有一些独特的方法,用于帮助我们更方便的实现某些功能。
append()方法
append()方法的作用是追加内容到当前 StringBuffer 对象的末尾,类似于字符串的连接,请看示例:
StringBuffer stringBuffer = new StringBuffer("Hello");
stringBuffer.append("World!");
System.out.println(stringBuffer);
执行结果为:
HelloWorld!
reverse()方法
reverse()方法将把当前字符序列反转后返回,请看示例:
StringBuffer stringBuffer = new StringBuffer("abc");
System.out.println(stringBuffer.reverse());
执行结果为:
cba
insert(int index,context)方法
insert() 方法的作用是在 StringBuffer 对象中的指定索引位置插入内容(整数、字符串、字符等),然后形成新的字符串。例如:
StringBuffer sb = new StringBuffer(“TestString”);
// 把false插入原字符串中,false在新字符串中的索引值为4
sb.insert(4,false);
System.out.println(sb);
执行结果为:
TestfalseString
setCharAt(int index,char c)方法
setCharAt() 方法的作用是在 StringBuffer 对象中的指定索引位置插入一个字符,然后形成新的字符串。例如:
StringBuffer sb = new StringBuffer(“TestString”);
// 把字符y插入原字符串中,y在新字符串中的索引值为0
sb.setCharAt(0,'y');
System.out.println(sb);
执行结果为:
yTestString
charAt(int index)方法
charAt() 方法的作用是获取指定索引的字符。例如:
StringBuffer sb = new StringBuffer(“TestString”);
System.out.println(charAt(0));
执行结果为:
T
delete(int start,int end)方法
delete() 方法的作用是删除指定索引范围内的字符。例如:
StringBuffer sb = new StringBuffer(“TestString”);
// 索引值含左不含右
sb.delete(0,2);
System.out.println(sb);
执行结果为:
stString
replace(int start,int end,String str)方法
replace() 方法的作用是把指定索引范围的字符串替换成指定字符串。例如:
StringBuffer sb = new StringBuffer(“TestString”);
// 索引值含左不含右
sb.replace(0,2,"aaaa");
System.out.println(sb);
执行结果为:
aaaastString
StringBuffer对象和String对象互转
注意,StringBuffer 和 String 属于不同的类型,也不能直接进行强制类型转换,下面的代码都是错误的:
StringBuffer s = "abc"; // 赋值类型不匹配
StringBuffer s = (StringBuffer)"abc"; // 不存在继承关系,无法进行强转
正确的对象之间互转代码如下:
String string1 = "Hello World!";
// String转换为StringBuffer
StringBuffer stringBuffer = new StringBuffer(string1);
// StringBuffer转换为String
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 **********/ } }