在 Java 中,我想提取一个以逗号分隔的字符串与另一个字符串相比的差异。
例如
我想要从中提取差异的字符串:1,hello,fire,dog,green
我要比较的字符串:1,hello,water,dog,yellow
因此,该函数的结果将为我提供一个 [3,fire] 和 [5,green] 的数组列表,因为这些项目与第二根弦,分别是“水”和“黄”。这些数字是检测到差异的每个项目的索引位置。其他项目匹配且不予考虑。
最佳答案
首先,您可以创建自己的 Pair 类(基于 Creating a list of pairs in java ),不必是模板。
然后做这样的事情:
拆分两个字符串:
List<String> toCompareSplit= Arrays.asList(toCompare.split(","));
List<String> compareWithSplit= Arrays.asList(compareWith.split(","));
迭代列表:
List<Pair> diffList= new ArrayList<Pair>();
for (int i= 0; i < toCompareSplit.size; i++){
if (!toCompareSplit.get(i).equals(compareWithSplit.get(i))){
Pair pair= new Pair(i+1, toCompareSplit.get(i));
diffList.add(pair);
}
}
如果列表大小不同,您可以运行到最短列表的末尾,等等。
关于java - 如何解析一个字符串与另一个字符串的比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26235542/