Java 如何更改字符串中的单词并使用新的单词排列重新打印原始字符串?

Java 如何更改字符串中的单词并使用新的单词排列重新打印原始字符串?,java,string,search,uppercase,Java,String,Search,Uppercase,代码: 它可以工作,但当有人输入第二个名为George的用户输入时,它不会重新排列单词以表示George是Name。如果这两个用户输入是我的名字是george,它就可以工作。我叫乔治。有没有办法解决这个问题?我的理论是,它在原始句子中找不到它,因此它不知道替换什么,因为它替换的东西不在原始句子中。你能做的就是使用 您的新代码如下所示: String one, two, three,four, five,six,seven,eight; Scanner kbrd = new Scanner(Sys

代码:

它可以工作,但当有人输入第二个名为George的用户输入时,它不会重新排列单词以表示George是Name。如果这两个用户输入是我的名字是george,它就可以工作。我叫乔治。有没有办法解决这个问题?我的理论是,它在原始句子中找不到它,因此它不知道替换什么,因为它替换的东西不在原始句子中。

你能做的就是使用

您的新代码如下所示:

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)
eight=1.replace(seven.trim(),five.trim());
//系统输出打印项次(八)
List语句=Arrays.asList(eight.trim().split(“”));
收集。洗牌(句子);
for(字符串str:句子){
System.out.println(str+“”);
}

您可以使用collections.shuffle!洗牌的话!这可能行得通,但我真的想用基本的字符串命令来解决这个问题。我不知道如何使用shuffle lol。请发布一个帖子,我想昨天你已经解决了你的问题。请更清楚地说明您的实际问题是什么,因为它有点让人困惑(至少对我来说)。您能给出一些示例输入和所需的输出吗?我不完全确定你想达到什么目的。它只是从一个短语中抽取3个单词并颠倒顺序吗?(例如“12345”>“14325”)
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+" ");
}