java - 去除重复的字符串

标签 java string

我有一个类似的字符串

JNDI Locations eis/FileAdapter,eis/FileAdapter used by composite 
HelloWorld1.0.jar are not available in the 
destination domain. 

eis/FileAdapter,eis/FileAdapter 出现两次。 我希望它的格式为

 JNDI Locations eis/FileAdapter used by composite 
    HelloWorld1.0.jar are not available in the 
    destination domain. 

我尝试了下面的事情

String[ ] missingAdapters =((textMissingAdapterList.item(0)).getNodeValue().trim().split(","));
 missingAdapters.get(0) 

但我错过了第二部分,有更好的方法来处理这个问题吗?

最佳答案

在您确认问题下方的评论中,重复项将始终通过逗号连接。使用此信息,这应该可行(对于大多数情况):

String replaceCustomDuplicates(String str) {
    if (str.indexOf(",") < 0) {
        return str; // nothing to do
    }
    StringBuilder result = new StringBuilder(str.length());
    for (String token : str.split(" ", -1)) {
        if (token.indexOf(",") > 0) {
            String[] parts = token.split(",");
            if (parts.length == 2 && parts[0].equals(parts[1])) {
                token = parts[0];
            }
        } 
        result.append(token + " ");
    }
    return result.delete(result.length() - 1, result.length()).toString();
}

用你的例子做一个小演示:

String str = "JNDI Locations eis/FileAdapter,eis/FileAdapter used by composite";
System.out.println(str);
str = replaceCustomDuplicates(str);
System.out.println(str);

修复了之前的错误

关于java - 去除重复的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18234103/

相关文章:

java - 数据库数据没有填入 JTable

java - 压缩文件无法解档

直到我将鼠标悬停在 Java 小程序按钮上才显示它们

python - 仅在字符串末尾删除子字符串

python - 使用Python3.x中的格式打印一个字符串中的列表、字符串和字典

java - Fabric-sdk-java 和 java 的 shim 之间有什么关系

java - 验证 Json 请求架构

python - 有条件地解析字符串

java - 在 while 循环内初始化变量

java - 将 double 格式设置为分数