我建议首先创建一个Map
具有相应年龄的所有组。
为此,您可以使用 aRegex
来获取alphanumeric
左侧和digit
右侧的字符串,以获取以 .colon
开头的行Group
。
我怀疑这些行来自您的文件。所以,首先你需要检查你的行是否以Group
. 然后在该行上应用以下正则表达式: -
"([A-Za-z0-9]+):(\\d+)" // Matches `G1:10`, `G2:30`, ...
然后将所有匹配字符串的group 1
和添加到group 2
Map<String, Integer>
现在,对于以 开头的其他行People
,应用类似的正则表达式,但仅alphabetic characters
在 的左侧colon
,然后group
从已创建的特定年龄中获取Map
。
"([A-Za-z]+):(\\d+)" // Matches `John:22`
可能这会让你开始。
更新 :
根据您的最新编辑,我建议创建一个Group
具有 3 个属性的类:
class Group {
private String groupName;
private int age;
private List<String> people;
}
而不是创建一个Map<String, Integer>
,创建一个Map<Integer, Group>
。你的工作会更轻松。Integer
是age
。
所以,当你得到一个Person
特定的 时,从那个获取age
组对象,并用那个人更新那个。Map
age
List<String>
group object
请尝试一下,看看您是否可以解决它。