gpt4 book ai didi

java - 搜索大字符串以查看是否存在无效的 "parameter"

转载 作者:行者123 更新时间:2023-11-30 05:16:36 24 4
gpt4 key购买 nike

我有一个大字符串,类似于这个:

BREW pot HTCPCP/1.0

Accept-Additions: #milk;3#whiskey;splash

Content-Length: 5

Content-Type: message/coffeepot

我还有一个包含多个添加项的数组(#whiskey、#espresso 等)。我需要做的是,如果这个大字符串包含不在可用添加项数组中的添加项,则发送错误。例如,如果字符串的“Accept-Additions”部分包含“#bricks;3”,则会产生错误,因为它不在数组中。

我将如何在 Java 中解决这个问题?尽管我已经编写了程序的其余部分(你们中的许多人可能认识到),但我在实现这部分时遇到了麻烦。我将如何编码以下问题,重点是添加不可用?

最佳答案

此代码对输入做出了一些假设。看起来您确实可以将每个标记进一步拆分为 #;成分。使用列表作为可接受的液体参数可以稍微清理代码(只需使用liquids.contains(String s))

  static String[] liquids = {"#milk;3", "#whiskey;splash"};

public static void parseString(String input)
{
// Break the String down into line-by-line.
String[] lines = input.split("" + '\n');
for (int line_index = 0; line_index < lines.length; line_index++)
{
if (lines[line_index].length() > 16)
{
// Assume you're delimiting by '#'
String[] tokens = lines[line_index].split("#");
if (tokens.length > 1)
{
// Start at index = 1 to kill "Accept-Additions:"
for (int token_index = 1; token_index < tokens.length; token_index++)
{
boolean valid = false;
for (int liquids_index = 0; liquids_index < liquids.length; liquids_index++)
{
if (liquids[liquids_index].equals("#" + tokens[token_index]))
{
valid = true;
// break to save some time if liquids is very long
break;
}
}
if (!valid)
{
throwError("#" + tokens[token_index]);
}
}
}
}
}
}

public static void throwError(String error)
{
System.out.println(error + " is not in the Array!");
}

关于java - 搜索大字符串以查看是否存在无效的 "parameter",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/827446/

24 4 0