如何从列表中分配一个数字 - JDBC JAVA SQL

时间:2014-03-19 16:50:38

标签: java mysql sql jdbc

我在数据库中遇到问题,我想从一系列库存(不是主键)中进行选择,并将它们分配给系统中的用户。

例如,我有一个名为stockCodes的字段,它由CAB001-CAB100等代码组成。这不是主键,主键实际上是stockID。

表格看起来像这样......

ID | Stock Codes
--------------------
1  | CAB001-CAB100
2  | CBA100-CBA200

现在,我如何细分股票代码,以便在Java中获得这样的列表...

CAB001

CAB002

CAB003

CAB004

CAB005

...

请帮忙。

1 个答案:

答案 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;
}