📅  最后修改于: 2023-12-03 15:42:10.330000             🧑  作者: Mango
在这个问题中,我们需要使用Java编写一个程序,将输入的含有若干个单词的句子反转,但单词内的字符顺序不变。
输入一个整数T,代表测试用例数量。每个测试用例由一个字符串S组成,S中包含多个单词,单词之间用空格隔开。S长度不超过4000个字符。
输出每个测试用例反转后的字符串,单词之间使用单个空格隔开。
将输入的字符串以空格为分隔符切割成字符串数组,然后遍历数组元素进行倒序拼接形成反转后的句子。
下面是基于Java语言的代码实现,使用String.split()
方法对输入句子进行分割,使用StringBuilder对分割后的字符串数组进行拼接操作:
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
sc.nextLine();
while(t-- > 0) {
StringBuilder sb = new StringBuilder();
String s = sc.nextLine();
String[] arr = s.split("\\s+");
for(int i = arr.length - 1; i >= 0; i--) {
sb.append(arr[i]).append(" ");
}
System.out.println(sb.toString().trim());
}
}
}
其中,t
表示测试用例数量,使用while(t-- > 0)
进行循环遍历。
接着使用String s = sc.nextLine()
读取输入的句子,然后使用s.split("\\s+")
方法将句子按空格分割成字符串数组。
使用StringBuilder sb = new StringBuilder()
初始化字符串拼接对象。
然后使用 for(int i = arr.length - 1; i >= 0; i--)
倒序遍历字符串数组中的元素,使用sb.append(arr[i]).append(" ")
将每个单词拼接成一个新的字符串。
最后使用System.out.println(sb.toString().trim())
输出反转后的句子,其中使用trim()
方法去除首尾空格。
这个问题需要用到字符串分割和字符串拼接操作,考查了考生对基本字符串操作的掌握程度和对循环的使用能力。