分配:
编写一个程序来显示这样的输出,其中输入是在运行时给出的。
示例输入:
my name is raghavendra
示例输出:
ym name si raghavendra
这是我到目前为止所做的:
import java.util.*;
class ReverseString2 {
public static void main(String[] args) {
Scanner sc = new
答案 0 :(得分:0)
根据您的问题,我会使用StringBuilder
。因为,当索引是偶数时,它具有有用的reverse()
函数。我相信你想要像
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String line = sc.nextLine();
// The \\s+ pattern matches one or more white-space characters.
String[] words = line.split("\\s+");
for (int i = 0; i < words.length; i++) {
if (i != 0) {
System.out.print(' ');
}
StringBuilder sb = new StringBuilder(words[i]);
// Reverse every other word.
if (i % 2 == 0) {
sb.reverse();
}
System.out.print(sb);
}
System.out.println();
}
}
答案 1 :(得分:0)
另一种解决方案是使用charAt
。代码看起来与此类似:
public String invertEvenWords(String line) {
String result = "";
String[] words = line.split("\\s+");
for (int i = 0; i < words.length; i++) {
/* The n-th word is reversed if n i even. */
if (i % 2 == 0) {
String inv = "";
for (int j = 0; j < words[i].length(); j++) {
char ch = words[i].charAt(j);
inv = ch + inv;
}
result += inv + " ";
/* Otherwise the word isn't reversed. */
} else {
result += words[i] + " ";
}
}
return result;
}