gpt4 book ai didi

java - 将一个句子旋转 n 个单词

转载 作者:行者123 更新时间:2023-11-30 08:06:42 26 4
gpt4 key购买 nike

我正在尝试更新我之前编写的用于“旋转字符串”的代码。目前我的程序接受来自键盘输入的字符串和整数 n。前任。 "abcdefg", 3. 然后将字符串旋转 n 个字符,然后返回旋转后的字符串,即 "efgabcd"。现在是棘手的部分。我正在尝试更新它以做基本相同的事情,但用一句话。所以输入会是类似“This is an example”和整数 3 的东西。然后输出会是“is an example this”。我假设将句子拆分成一个数组是我最好的选择;然而,我对字符串的不熟悉不允许我知道如何去做这件事。

import java.util.*;
public class Rotate
{
public static String rotate(String s, int num)
{
int length = s.length();
String a = s.substring(0,(length-num));
String b = s.substring((length-num),length);
String c = b + a;
return c;
}


public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.print("Enter a string:");
String s = input.nextLine();
System.out.print("Enter the number of characters that you want to rotated to right:");
int n =input.nextInt();
String t = rotate(s, n);
System.out.println("The rotated string is "+ t);
}
}

最佳答案

这是一个示例解决方案:

int num = 3;
String str = "This is a test";
String[] strArr = str.split(" ");
int length = strArr.length;
String[] temp = Arrays.copyOfRange(strArr, length - num, length);
System.arraycopy(strArr, 0, strArr, num, length - num);
System.arraycopy(temp, 0, strArr, 0, temp.length);
str = String.join(" ", strArr);

str 现在包含“is a test This”。

编辑:固定向右旋转。

我实际上更喜欢@fergDEV 的解决方案,但如果您使用的是 Java 8,它可以稍微清理一下:

int num = 3;
String str = "This is a test";
List<String> parts = Arrays.asList(str.split(" "));
Collections.rotate(parts, 3);
String.join(" ", parts);

关于java - 将一个句子旋转 n 个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34212055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com