Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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 按顺序拆分字符串;然后比较这些值_Java_String_Split_Compare_Java 7_Java 8 - Fatal编程技术网

Java 按顺序拆分字符串;然后比较这些值

Java 按顺序拆分字符串;然后比较这些值,java,string,split,compare,java-7,java-8,Java,String,Split,Compare,Java 7,Java 8,我有一个字符串,它返回由分隔的一组ID。我正在拆分它们,以获得它们各自的值,并将其传递给另一个实用程序以查找父id。然后,我需要将父id相互比较,以确保所有id的值相同。该字符串可以包含一到多个ID。例如: String unitIdList = "3e46907f-c4e8-44d2-8cab-4abb5a191a72;9d242306-1c7c-4c95-afde-e1057af9d67c;2e96838f-f0df-4c82-b5bc-cb81a6bdb792;b21a4b19-6c1a-

我有一个字符串,它返回由
分隔的一组ID。我正在拆分它们,以获得它们各自的值,并将其传递给另一个实用程序以查找父id。然后,我需要将父id相互比较,以确保所有id的值相同。该字符串可以包含一到多个ID。例如:

String unitIdList = "3e46907f-c4e8-44d2-8cab-4abb5a191a72;9d242306-1c7c-4c95-afde-e1057af9d67c;2e96838f-f0df-4c82-b5bc-cb81a6bdb792;b21a4b19-6c1a-4e74-aa84-7900f6ffa7a8"

for ( String unitIds : unitIdList.split(";") ) {
    parentId = UnitUtil.getInstance().getParentId(UUID.fromString(unitIds));

     // now I need to compare parentIds. They should all be the same, but if not then do something else. 
}

如何比较每个值?

您可以将它们全部放在
集合中
并检查大小是否为
1

String unitIdList = // ...
Set<String> distinctIds = new HashSet<>(Arrays.asList(unitIdList.split(";")));
if(distinctIds.size() == 1) {
    // all the same ids
} else {
    // not all the same!
}
String unitIdList=/。。。
Set-differentids=newhashset(Arrays.asList(unitIdList.split(“;”));
if(differentids.size()==1){
//所有相同的ID
}否则{
//不一样!
}
您可以拆分(就像您已经有的那样),然后循环遍历每个项目,并与每个项目进行比较

String unitIdList = "3e46907f-c4e8-44d2-8cab-4abb5a191a72;9d242306-1c7c-4c95-afde-e1057af9d67c;2e96838f-f0df-4c82-b5bc-cb81a6bdb792;b21a4b19-6c1a-4e74-aa84-7900f6ffa7a8";

String[] ids = unitIdList.split(";");

boolean allEqual = true;

for (String s1 : ids) {
    for (String s2 : ids) {
        allEqual = s1.equals(s2);
    }
}

System.out.println("eq: " + allEqual);

if (allEqual) {
    // ...
}
这绝不是最优化的。一旦allEqual为false,您就可以
中断两个循环。

解决方案:

if (Stream.of(unitIdList.split(";")).distinct().count() == 1) {
    // only one distinct ID
} else {
    // more than one distinct IDs
}

我需要比较每个id或每个元素,3e46907f-c4e8-44d2-8cab-4abb5a191a72等同于9d242306-1c7c-4c95-afde-e1057af9d67c等。将项目添加到
集合中会自动删除重复项。