如何在字符串中提取更多对 "Key = val_1,...,val_n"?
How can i extract more couples of "Key = val_1,...,val_n" in a String?
我需要解决一个问题。我有一个不总是相同顺序的“规则”字符串,我应该提取每个键的键和 value/s 。
我的 Key/Value 分隔符是字符“=”,而不同的分隔符是字符“;”。
该字符串由“Key_1 = Value_1, ... , Value_n; Key_2 = Value_1, ... , Value_n; 组成; ".
我的字符串示例是:
1) "Role = Student, Professor; HourFrom = 10:30; HourTo = 13:30;"
2) "HourFrom = 10:00; HourTo = 20:00;"
3) "Role = Professor; DayOfTheWeek = Monday, Friday;"
4) "DateFrom = 20/07/2020; DateTo = 19/08/2020;"
可能性如此之多,我的字符串的可能键是:Role、HourFrom、HourTo、DateFrom、DateTo、DayOfTheWeek。我想我有类似 2^n 的组合,有 n 个键。
我真的快疯了,因为我没有字符串顺序,所以我不知道如何解决这个问题。希望大家能帮帮我,先谢谢了。
您可以使用“;”拆分和“:”在像这样将值放入地图后:
String input1 = "Role = Student, Professor; HourFrom = 10:30; HourTo = 13:30;";
String[] input = input1.split(";");
Map<String,String> output = new HashMap<>();
for (String s:input ){
String[] value = s.split("=");
if(value.length == 2) {
output.put(value[0],value[1]);
}else if (value.length == 1){
output.put(value[0],null);
}
}
output.entrySet().forEach(entry->{
System.out.println("{"+entry.getKey() + " = " + entry.getValue()+"}");
});
结果:
{ HourFrom = 10:30}
{ HourTo = 13:30}
{角色 = 学生、教授}
我需要解决一个问题。我有一个不总是相同顺序的“规则”字符串,我应该提取每个键的键和 value/s 。
我的 Key/Value 分隔符是字符“=”,而不同的分隔符是字符“;”。
该字符串由“Key_1 = Value_1, ... , Value_n; Key_2 = Value_1, ... , Value_n; 组成; ".
我的字符串示例是:
1) "Role = Student, Professor; HourFrom = 10:30; HourTo = 13:30;"
2) "HourFrom = 10:00; HourTo = 20:00;"
3) "Role = Professor; DayOfTheWeek = Monday, Friday;"
4) "DateFrom = 20/07/2020; DateTo = 19/08/2020;"
可能性如此之多,我的字符串的可能键是:Role、HourFrom、HourTo、DateFrom、DateTo、DayOfTheWeek。我想我有类似 2^n 的组合,有 n 个键。
我真的快疯了,因为我没有字符串顺序,所以我不知道如何解决这个问题。希望大家能帮帮我,先谢谢了。
您可以使用“;”拆分和“:”在像这样将值放入地图后:
String input1 = "Role = Student, Professor; HourFrom = 10:30; HourTo = 13:30;";
String[] input = input1.split(";");
Map<String,String> output = new HashMap<>();
for (String s:input ){
String[] value = s.split("=");
if(value.length == 2) {
output.put(value[0],value[1]);
}else if (value.length == 1){
output.put(value[0],null);
}
}
output.entrySet().forEach(entry->{
System.out.println("{"+entry.getKey() + " = " + entry.getValue()+"}");
});
结果:
{ HourFrom = 10:30} { HourTo = 13:30} {角色 = 学生、教授}