【发布时间】:2019-01-12 13:28:58
【问题描述】:
我的列表中的数值很少,所以我需要从左到右匹配每两个序列号/字符。
在stringList 下面我的记录很少,我必须将这些记录与另一条记录进行比较,即wordA。
我想匹配每两个序列号/字符,所以如果我输入 630102 它必须返回第三个。如果我输入630677,它必须返回第二个,因为630677 不在我的stringList 中,但这里第一个4 数字6306 与我的列表值匹配。
以下是我尝试过的示例代码。如果您有任何建议,请提供。
String wordA = "630102";
List<String> stringList = new ArrayList<>();
stringList.add("630507"); //1st
stringList.add("630622"); //2nd
stringList.add("6301"); //3rd
stringList.add("63"); //4th
String common = "";
int count1 = 0;
int count2 = 0;
for (int i = 0; i < stringList.size(); i++) {
for (int j = 0; j < wordA.length(); j++) {
if (stringList.get(i).length() > j) {
if (wordA.charAt(j) != stringList.get(i).charAt(j)) {
break;
} else if (wordA.charAt(j) == stringList.get(i).charAt(j)) {
count1++;
if (count1 == 2) {
count2++;
count1 = 0;
}
}
}
}
if (wordA.length() > stringList.get(i).length()) {
common = stringList.get(i);
break;
}
}
System.out.println("common is: " + common);
【问题讨论】:
-
你为什么希望它看起来很复杂??
-
正则表达式怎么样,它可以更容易吗?
-
@YCF_L:正则表达式?我发现使用正则表达式的唯一方法就是我的答案。就个人而言,我更喜欢第一种方式——按字符迭代。你有更好的主意吗?我想看看:))
标签: java string algorithm list for-loop