我有以下非常简单的方法从电子表格中检索数据作为记录:
List<Map<String, String>> records = new ArrayList<>();
ListFeed feed = spreadsheetService.getFeed(worksheet.getListFeedUrl(), ListFeed.class);
for (ListEntry row : feed.getEntries()) {
Map<String, String> record = new HashMap<>();
for (String tag : row.getCustomElements().getTags()) {
record.put(tag, row.getCustomElements().getValue(tag));
}
records.add(record);
}
然而,他的tag
不是我在表格中作为标题写的正确字符串。似乎API剥离每个重音,空格,括号和上帝都知道什么,并且在将它们存储在地图上之前也将每个字母都放到小写字母上(只是键,值很好)。
所以:
到目前为止,当我检索数据时,我已经删除了我提到的用于引用字符串的字符。所以我做了类似的事情:
private static String normalize(String key) {
return StringUtils.stripAccents(key).replaceAll(" ", "").replaceAll("\\(", "").replaceAll("\\)", "").toLowerCase();
}
但这很糟糕,因为:
列的名称是用户输入,我不想限制我的用户只使用非常类似于变量名的字符串。而且我不希望他们因为他们甚至不知道存在的关键冲突而出错。它应该对他们透明。
想法?