@Contract(pure = true)
  public static String @NotNull [] filterEmptyStrings(String @NotNull [] strings) {
    int emptyCount = 0;
    for (String string : strings) {
      if (string == null || string.isEmpty()) emptyCount++;
    }
    if (emptyCount == 0) return strings;

    String[] result = ArrayUtil.newStringArray(strings.length - emptyCount);
    int count = 0;
    for (String string : strings) {
      if (string == null || string.isEmpty()) continue;
      result[count++] = string;
    }

    return result;
  }
@Contract(pure = true)
  public static String @NotNull [] filterEmptyStrings(String @NotNull [] strings)