找到一个子字符串并重新定位它

时间:2016-01-04 21:37:17

标签: java string substring

我正在尝试在字符串中查找子字符串。如果字符串不包含子字符串,则将在字符串的后面添加。但是,在某些数据中,子串位于中间(假设位于后面(地址))。

boolean checkState = s.getAddress().contains("MELAKA");
String[] addr = s.getAddress().split(",");
String newTrimAddress = addr[0];

for (int i = 1; i < addr.length; i++) {
    boolean check = false;
    for (int j = i + 1; j < addr.length; j++) {
        if (addr[i].equals(addr[j])) {
            check = true;
            break;
        }
    }

    if (check == false) {
        newTrimAddress += ", " + addr[i];
    }
}

if (checkState == false)
    newTrimAddress += ", " + "MELAKA";

System.out.println(newTrimAddress);

最后但并非最不重要的是,如果有任何方法我可以删除第二或第三次出现的子字符串,因为地址的结构非常糟糕。这个城市是冗余的,我可以替换它,因为有一些房子的地址有城市名称。谢谢。

2 个答案:

答案 0 :(得分:0)

Java的substring方法允许您输入起始索引和(可选)结束索引。所以,如果你需要删除部分中间部分,你可以做第一部分的子串,并将它与最后一部分的子串连接。

答案 1 :(得分:0)

为什么不使用String.replaceAll(String subString)? 这将允许您替换子字符串,无论它在哪里。它还具有查找子字符串的任何重复项的附加好处。您也可以用空字符串替换字符串,然后以您喜欢的方式添加它,例如:

String trimmed = originalString.replaceAll("MELAKA", "");
String trimmed = trimmed + "," + "MELAKA";