Java-單詞反轉
題目描述
輸入一個英文文章片段,
翻轉指定區(qū)域的單詞順序,
標點符號和普通字母一樣處理,
例如輸入字符串
I am a developer.
[0,3]
則輸出
developer. a am I
輸入描述
使用換行隔開3
個參數
第一個參數為文章內容 即英文字符串
第二個參數為翻轉起始單詞下標,下標從0
開始
第三個參數為結束單詞下標
輸出描述
翻轉后英文文章片段每個單詞之間以一個半角空格分割輸出
示例一
輸入
I am a developer.
0
3
輸出
developer. a am I
示例二
輸入
hello world!
0
3
輸出
world! hello
參考解題 Java
import java.util.*;
public class Main{
?public static void main(String[] args) {
? ?try (Scanner scanner = new Scanner(System.in)) {
? ? ?String line = scanner.nextLine();
? ? ?int l = scanner.nextInt();
? ? ?int r = scanner.nextInt();
? ? ?solution(line, l, r);
? ?}
?}
?private static void solution(String line, int l, int r) {
? ?String[] words = line.trim().split(" ");
? ?if (r > words.length - 1) r = words.length - 1;
? ?if (words.length == 0 ||
? ? ? ?l < 0 ||
? ? ? ?r - l <= 0) {
? ? ?System.out.println("EMPTY");
? ? ?return;
? ?}
? ?while (l < r) {
? ? ?String tmp = words[l];
? ? ?words[l] = words[r];
? ? ?words[r] = tmp;
? ? ?l++;
? ? ?r--;
? ?}
? ?for (int i = 0; i < words.length; i++) {
? ? ?System.out.print(words[i]);
? ? ?if (i != words.length - 1) {
? ? ? ?System.out.print(" ");
? ? ?}
? ?}
?}
}
標簽: