题目
编写一个程序,将下面的一段文本中的各个单词的字母顺序翻转,“To be or not to be.",将变成"oT eb ro ton ot eb."。
解析
这题的核心是对java字符串的理解,如果掌握了相关的java库知识,会显得非常简单。我感觉代码中注释写的挺详细的了,第一次写算法类博客,如果还有没说清楚的地方,欢迎大家伙留言评论提问。
代码
public class Main {
static String stArray[];//用来存储分割空格后的字符串
public static void main(String[] args) {
String sentence = "To be or not to be";
reverse(sentence);
printWord();
}
private static void printWord() {
for (String str : stArray) {//foreach语句输出str的字符串数组
System.out.print(str);
}
}
private static void reverse(String sentence) {
stArray = sentence.split(" ");//将字符串按空格符分开成数组
for (int i = 0; i < stArray.length; i++) {
//逐个单词反转,并用反转后的单词替换掉原来字符串数组中的单词
String tempString = reverseWord(stArray[i]);
stArray[i] = tempString;
}
}
private static String reverseWord(String word) {
//使用库中的StringBuilder相关函数进行单词反转
StringBuilder sb = new StringBuilder(word);
return sb.reverse().toString() + " ";//把分割后的空格符添加回去
}
}