java如何基于字符串生成数组
我有一个记录集,其中包含列product和status
例如:
Product Status
salt good
sugar bad
salt bad
sugar good
sugar good
在后面的报告中,我需要根据状态进行总结,如下所示
summary good
product_code sum
sugar 2
salt 1
summary bad
product_code sum
sugar 1
salt 1
我正在用excel做报告,从我读到的内容,我可以确定使用多少盐是好是坏
Collections.frequency(collection, key)
从here
所以,我想我必须把清单上的好的和坏的分开,然后数一数有多少盐、糖和其他存在的产品。这就是我现在要做的
rs = impl.showOnlyColumn(query);;
ResultSetMetaData metaData = rs.getMetaData();
int colProduct = 0;
int colStatus = 0;
String dataProd="";
String dataStat="";
Map<String, String[]> mapinData= new HashMap<String, String[]>();
//making column name on excel
int columnCount = metaData.getColumnCount();
for (int column = 1; column <= columnCount; column++) {
label = new Label(column - 1, 2, metaData.getColumnName(column));
excelSheet.addCell(label);
// check if column is product or status
String columnName = metaData.getColumnName(column).toLowerCase();
if (columnName.contains("produ")) {
colProduct = column;
} else if (columnName.contains("status")) {
colStatus = column;
}
}
//render the data
int r = 3;
while (rs.next()) {
for (int column = 0; column <= columnCount - 1; column++) {
String cellValue = (rs.getString(column + 1) == null ? "" : rs.getString(column + 1));
label = new Label(column, r, cellValue);
excelSheet.addCell(label);
if (column == colProduct) {
dataProd = cellValue;
}else if (column==colStatus) {
dataStat = cellValue;
}
}
mapinData.put(dataStat,dataProd);
r++;
}
myFirstWbook.write();
问题是我不知道如何根据状态名生成数组
mapinData.put(dataStat,how to make array here?);
然后我将取数组,用于计算具有该状态的乘积之和
如果有什么我描述得不好的,请告诉我,非常感谢你的帮助
# 1 楼答案
用
Map<String, List<String>>
代替Map<String, String[]>