在java开发中我要如何去搜索编号开头为LY-PCB 后面数字格式为0002找出最大的数据
时间: 2023-12-14 13:35:51 浏览: 55
你可以使用Java中的正则表达式和比较函数来实现这个功能。具体步骤如下:
1. 通过正则表达式匹配符合要求的编号,将其存入一个List中。
```java
List<String> list = new ArrayList<String>();
String pattern = "^LY-PCB\\d{4}$";
Pattern r = Pattern.compile(pattern);
for (String s : yourDataList) {
if (r.matcher(s).matches()) {
list.add(s);
}
}
```
这里的yourDataList是你需要搜索的数据列表,^LY-PCB\d{4}$是匹配以LY-PCB开头,后面跟着4位数字的正则表达式。
2. 对List中的数据进行排序,取出最大值。
```java
if (!list.isEmpty()) {
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int n1 = Integer.parseInt(o1.substring(7));
int n2 = Integer.parseInt(o2.substring(7));
return n1 - n2;
}
});
String max = list.get(list.size() - 1);
System.out.println("最大编号为:" + max);
} else {
System.out.println("没有符合要求的数据!");
}
```
这里使用Collections.sort对List进行排序,将自定义的比较函数传入,比较函数中按照后面4位数字大小进行比较。最后取出排序后的最后一个元素即为最大值。
注意,上面的代码中substring(7)是因为LY-PCB占了7个字符,后面4位数字从第8个字符开始。如果你的数据格式不同,需要相应地修改代码。