Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我怎样才能提取更多的“夫妇”;Key=val_1,…,val_n“;一串?_Java_String_Text Extraction - Fatal编程技术网

Java 我怎样才能提取更多的“夫妇”;Key=val_1,…,val_n“;一串?

Java 我怎样才能提取更多的“夫妇”;Key=val_1,…,val_n“;一串?,java,string,text-extraction,Java,String,Text Extraction,我需要解决一个问题。我有一个不总是相同顺序的“规则”字符串,我应该提取键和每个键的值。 我的键/值分隔符是字符“=”,而不同的分隔符是字符“;” 此字符串由“Key_1=Value_1,…,Value_n;Key_2=Value_1,…,Value_n;”组成 我的字符串示例如下: 1)“角色=学生,教授;小时数=10:30;小时数=13:30 2) “HourFrom=10:00;HourTo=20:00;” 3) 角色=教授;星期一=星期一、星期五 4) “DateFrom=20/07/20

我需要解决一个问题。我有一个不总是相同顺序的“规则”字符串,我应该提取键和每个键的值。 我的键/值分隔符是字符“=”,而不同的分隔符是字符“;”
此字符串由“Key_1=Value_1,…,Value_n;Key_2=Value_1,…,Value_n;”组成

我的字符串示例如下:

1)“角色=学生,教授;小时数=10:30;小时数=13:30
2) “HourFrom=10:00;HourTo=20:00;”
3) 角色=教授;星期一=星期一、星期五
4) “DateFrom=20/07/2020;DateTo=19/08/2020;”
可能性是如此之多,我的字符串的可能键是:Role、HourFrom、HourTo、DateFrom、DateTo、dayOfWeek。我想我有2^n的组合,有n个键

我真的疯了,因为我没有字符串顺序,所以我不知道如何解决这个问题。希望你们能帮助我,所以提前谢谢你们。

你们可以使用split by“;”和“:”在这样的地图中放置值后:

    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()+"}");
    });
String input1=“角色=学生,教授;小时数=10:30;小时数=13:30;”;
字符串[]输入=input1.split(“;”);
映射输出=新的HashMap();
for(字符串s:输入){
字符串[]值=s.split(“”);
如果(value.length==2){
put(值[0],值[1]);
}else if(value.length==1){
output.put(值[0],空);
}
}
output.entrySet().forEach(条目->{
System.out.println(“{”+entry.getKey()+”=“+entry.getValue()+”}”);
});
结果:

{HourFrom=10:30} {HourTo=13:30} {Role=Student,Professor}

您可以使用split by“;”和“:”在这样的映射中放置值之后:

    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()+"}");
    });
String input1=“角色=学生,教授;小时数=10:30;小时数=13:30;”;
字符串[]输入=input1.split(“;”);
映射输出=新的HashMap();
for(字符串s:输入){
字符串[]值=s.split(“”);
如果(value.length==2){
put(值[0],值[1]);
}else if(value.length==1){
output.put(值[0],空);
}
}
output.entrySet().forEach(条目->{
System.out.println(“{”+entry.getKey()+”=“+entry.getValue()+”}”);
});
结果:

{HourFrom=10:30} {HourTo=13:30}
{Role=Student,Professor}

你想实现什么?你说你有问题,你描述了
规则
,但实际上你没有说你想做什么。为了让人们提供好的答案,你应该更好地解释。请编辑以澄清。@null\u抱歉,我是新发布的。我希望现在可以更好地解释我的问题所在。为什么字符串顺序很重要?你说你有2^n个组合,但你所需要做的就是提取关键点,那又有什么关系呢?作为一个新手没问题,每个人都是从某个角度开始的:)Idk,也许用一个有序的字符串更容易预测我提取的键/值。但无论如何,我不知道如何提取它们。你想达到什么目的?你说你有问题,你描述了
规则
,但实际上你没有说你想做什么。为了让人们提供好的答案,你应该更好地解释。请编辑以澄清。@null\u抱歉,我是新发布的。我希望现在可以更好地解释我的问题所在。为什么字符串顺序很重要?你说你有2^n个组合,但你所需要做的就是提取关键点,那又有什么关系呢?作为一个新手没问题,每个人都是从某个角度开始的:)Idk,也许用一个有序的字符串更容易预测我提取的键/值。但无论如何我不知道如何提取它们。谢谢你的回答!顺便说一句,有了这段代码,我只有以下输出:{Role=Student}。我需要像:{Role=Student,Professor}{HourFrom=10:30}ecc…在您的输入中有一个错误(您设置了“,”而不是“;”)。非常感谢您,我想我将在接下来的几天里做另一个问题,关于如何在正确的字段中插入这对夫妇,因为我需要我提取的数据!不客气,当你发布你的问题时,请在评论中通知我,所以我会尽力解决它谢谢你的回答!顺便说一句,有了这段代码,我只有以下输出:{Role=Student}。我需要像:{Role=Student,Professor}{HourFrom=10:30}ecc…在您的输入中有一个错误(您设置了“,”而不是“;”)。非常感谢您,我想我将在接下来的几天里做另一个问题,关于如何在正确的字段中插入这对夫妇,因为我需要我提取的数据!不客气,当你发布你的问题时,请在此评论中通知我,所以我将尝试解决它