我需要按照这些单词在模式数组中的顺序对一串单词进行排序:
String[] pattern = {"Burger", "Fries", "Chicken", "Pizza", "Sandwich", "Onionrings", "Milkshake", "Coke"};
String s = "Chicken Coke Chicken Chicken Onionrings Coke Burger Milkshake Milkshake Burger Coke Milkshake Burger Onionrings Onionrings Coke Chicken Burger Fries Milkshake"; // input string
Run Code Online (Sandbox Code Playgroud)
预计
"Burger Burger Burger Burger Fries Chicken Chicken Chicken Chicken Onionrings Onionrings Onionrings Milkshake Milkshake Milkshake Milkshake Coke Coke Coke Coke" // output string
Run Code Online (Sandbox Code Playgroud)
您可以使用 aList来从单词中获取索引,然后使用这些索引对单词进行排序
Listos 单词以使它们可索引split你String进入一个数组,以便能够对单词进行排序sort 他们根据他们在 Listjoin 得到一个的话 String// INPUTS
String s = "Chicken Coke Chicken Chicken Onionrings Coke Burger Milkshake Milkshake Burger Coke Milkshake Burger Onionrings Onionrings Coke Chicken Burger Fries Milkshake";
String expect = "Burger Burger Burger Burger Fries Chicken Chicken Chicken Chicken Onionrings Onionrings Onionrings Milkshake Milkshake Milkshake Milkshake Coke Coke Coke Coke";
String[] pattern = {"Burger", "Fries", "Chicken", "Pizza", "Sandwich", "Onionrings",
"Milkshake", "Coke"};
// Get the patterns a list to get the indexOf method
List<String> listPatterns = Arrays.asList(pattern);
// Split in words
String[] values = s.split(" ");
//Sort base on index in list
Arrays.sort(values, Comparator.comparing(listPatterns::indexOf));
// Rebuild a string by joining
String result = String.join(" ", values);
// true
System.out.println(result.equals(expect));
Run Code Online (Sandbox Code Playgroud)