输入一个英文文章片段,翻转指定区间的单词顺序,标点符号和普通字母一样处理。
例如输入字符串 “I am a developer.”,区间[0,3]则输出 “developer. a am I”。
使用换行隔开三个参数
第一个参数为英文文章内容即英文字符串
第二个参数为反转起始单词下标,下标从0开始
第三个参数为结束单词下标,
反转后的英文文章片段,所有单词之间以一个半角空格分割进行输出
1.输入:
I am a developer.
1
2
输出:
I a am developer.
2.输入:
Hello world!
0
1
输出:
world! Hello
说明:
输入字符串可以在前面或者后面包含多余的空格,但是反转后的不能包含多余空格。
3.输入:
I am a developer.
0
3
输出:
developer. a am I
说明:
如果两个单词见有多余的空格,将反转后单词间的空格减少到只含一个。
4.输入:
Hello!
0
3
输出:
EMPTY
说明:
指定反转区间只有一个单词,或无有效单词则统一输出EMPTY。
1、注意输入字符串中前后的空格
2、注意end的大小可能超过字符串长度
3、注意反转的区间
package com.HW;
package com.HW;
/**
* @ClassName : TStrIntervalReverse
* @Author : kele
* @Date: 2023/10/24 22:31
* @Description :按区间反转文章片段
*/
public class TStrIntervalReverse {
public static void main(String[] args) {
handle("I am a developer.",0,3);
handle("I am a developer.",1,2);
handle("Hello world!",0,1);
}
public static void handle(String str, int begin, int end) {
String[] split = str.trim().split("\\s+");
if (end > split.length - 1 || end < begin || begin < 0 || begin > split.length - 1) {
System.out.println("EMPTY");
return;
}
StringBuilder builder = new StringBuilder();
for (int i = 0; i < begin; i++) {
builder.append(split[i]).append(" ");
}
for (int i = end; i >= begin; i--) {
builder.append(split[i]).append(" ");
}
if(end < split.length-1){
for (int i = end + 1; i < split.length; i++) {
builder.append(split[i]).append(" ");
}
}
System.out.println(builder.substring(0,builder.length()-1));
}
}