gpt4 book ai didi

java - 如何显示以特定数字开头的所有值

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

我正在创建一个搜索来过滤 100 到 600 之间的一些整数值。这些值是 Http Status Codes ,所以我只想过滤它们。
搜索的工作方式如下:

  1. 用户输入搜索值,例如2并点击搜索
  2. 结果将是 200 到 299 之间的所有值(因此所有值都以 2 开头)。
  3. 用户输入一个值,例如20并点击搜索
  4. 结果将是 200 到 209 之间的所有值(因此所有以 20 开头的值)。
  5. 用户输入一个值,例如52并点击搜索
  6. 结果将是从 520 到 529 的所有值(因此所有以 52 开头的值)

我写了一些非常多余的代码,但基本上解释了它应该如何工作:

     public void getHttpStatus(Integer httpStatus){
if(httpStatus.equals(1)){
messageRepository.findByHttpStatusBetween(100, 199);
}
else if(httpStatus.equals(2)){
messageRepository.findByHttpStatusBetween(200, 299);
}
else if(httpStatus.equals(3)){
messageRepository.findByHttpStatusBetween(300, 399);
}
else if(httpStatus.equals(4)){
messageRepository.findByHttpStatusBetween(400, 499);
}
else if(httpStatus.equals(5)){
messageRepository.findByHttpStatusBetween(500, 599);
}
else if(httpStatus.equals(10)){
messageRepository.findByHttpStatusBetween(100, 109);
}
else if(httpStatus.equals(20)){
messageRepository.findByHttpStatusBetween(200, 209);
}
else if(httpStatus.equals(30)){
messageRepository.findByHttpStatusBetween(300, 309);
}
else if(httpStatus.equals(40)){
messageRepository.findByHttpStatusBetween(400, 409);
}
else if(httpStatus.equals(50)){
messageRepository.findByHttpStatusBetween(500, 509);
}
else if(httpStatus.equals(21)){
messageRepository.findByHttpStatusBetween(210, 219);
}
...
}

有没有更简单的方法来做到这一点?或者是否有任何内置的 spring 方法可以自动执行此操作?

如有任何建议,我将不胜感激。

最佳答案

假设您有一个包含所有状态代码的列表,您可以使用流过滤器,即

List<Integer> httpCodes;
String prefix = "5"
List<Integer> filteredResults = httpCodes.stream().filter(value -> value.toString().startsWith(prefix)).collect(Collectors.toList());

关于java - 如何显示以特定数字开头的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57376019/

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