【问题标题】:How to change the words in a string and reprint the original string but with the new arrangement of words?如何更改字符串中的单词并重新打印原始字符串但使用新的单词排列?
【发布时间】:2016-01-07 14:05:17
【问题描述】:

代码:

String one, two, three,four, five,six,seven,eight;
Scanner kbrd = new Scanner(System.in);
System.out.println("please enter a phrase, and then pick three words that you want to switch");
one= kbrd.nextLine();
two= kbrd.next() +" ";
three = kbrd.next()+" ";
four = kbrd.next()+ " ";
two.toLowerCase();
three.toLowerCase();
four.toLowerCase();
seven = two+three+four;
System.out.println(one.indexOf(two));
System.out.println(one.lastIndexOf(four));
five = four.toUpperCase()+three+two.toUpperCase();
System.out.println(five);
eight = one.replace(seven.trim(),five.trim());
System.out.println(eight)

它可以工作,但是当有人输入第二个用户输入的名称为 George 时,它​​不会重新排列单词 GEORGE IS NAME。如果两个用户输入是我的名字是乔治,它就可以工作。名字是乔治。任何想法如何解决这一问题?我的理论是它在原始句子中找不到它,因此它不知道要替换什么,因为它要替换的内容不在原始句子中。

【问题讨论】:

  • 你可以使用 collections.shuffle !洗牌!
  • 这可能有效,但我真的很想使用基本的字符串命令来解决这个问题。而且我不知道如何使用随机播放哈哈。
  • 请发MCVE,我猜你昨天解决了original question。请更清楚您的实际问题是什么,因为这有点令人困惑(至少对我而言)。
  • 您能否提供一些示例输入和所需的输出?我不完全确定您要达到的目标。只是从一个短语中取出 3 个单词并颠倒它们的顺序吗? (例如“1 2 3 4 5”>“1 4 3 2 5”)

标签: java string search uppercase


【解决方案1】:

你可以做的是使用Collections.Shuffle()

您的新代码如下所示:

eight = one.replace(seven.trim(),five.trim());
// System.out.println(eight)
List<String> sentence = Arrays.asList(eight.trim().split(" "));
Collections.shuffle(sentence);
for(String str : sentence) {
   System.out.println(str+" ");
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    • 2011-09-10
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多