任务描述
本关任务:接收给定字符串,将字符串中的各个单词的字母顺序反转,例如:
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.
3. 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 **********/
}
}