繁体   English   中英

如何更改字符串中的单词并以新的单词排列方式重新打印原始字符串?

[英]How to change the words in a string and reprint the original string but with the new arrangement of words?

代码:

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()

您的新代码如下所示:

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+" ");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM