gpt4 book ai didi

java - 基于字符串的模式数组对字符串进行排序

转载 作者:行者123 更新时间:2023-12-02 19:16:25 25 4
gpt4 key购买 nike

我需要按照这些单词在模式数组中的放置顺序对字符串进行排序:

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

期待

"Burger Burger Burger Burger Fries Chicken Chicken Chicken Chicken Onionrings Onionrings Onionrings Milkshake Milkshake Milkshake Milkshake Coke Coke Coke Coke" // output string

最佳答案

您可以使用List从单词中获取索引,然后使用这些索引对单词进行排序

  • 获取单词的列表以使其可索引
  • 字符串拆分到一个数组中,以便能够对单词进行排序
  • 根据它们在 List 中的索引对它们进行排序
  • 连接单词得到一个字符串
// 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));

关于java - 基于字符串的模式数组对字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63655094/

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