我在数据库中遇到问题,我想从一系列库存(不是主键)中进行选择,并将它们分配给系统中的用户。
例如,我有一个名为stockCodes的字段,它由CAB001-CAB100等代码组成。这不是主键,主键实际上是stockID。
表格看起来像这样......
ID | Stock Codes
--------------------
1 | CAB001-CAB100
2 | CBA100-CBA200
现在,我如何细分股票代码,以便在Java中获得这样的列表...
CAB001
CAB002
CAB003
CAB004
CAB005
...
请帮忙。
答案 0 :(得分:1)
您必须解析文本 - 它们是否始终遵循3个字母和3个数字的相同格式?如果是这样,那么效果会起作用:
/**
* Populate a full list of stocks from a given range
*
* @param stockRange the stock range pulled from the DB, in this format: "XXX###-XXX###"
* @return list of all stocks in the specified range
*/
public List<String> getFullStockRange(final String stockRange) {
final String[] values = stockRange.split("-");
final Integer first = Integer.parseInt(values[0].substring(3));
final Integer last = Integer.parseInt(values[1].substring(3));
final String prefix = values[0].substring(0, 3);
final List<String> list = new LinkedList<>();
for (int i = first; i<= last; i++) {
final String entry = String.format("%s%03d", prefix, i);
list.add(entry);
}
return list;
}