如何避免字符串重复

时间:2011-05-17 05:36:11

标签: java

我有两个不同的string String A="example"; String B="example"; if concat我得到的字符串examplexample.是否有可能避免重复使用相同名称的字符串.. ??

4 个答案:

答案 0 :(得分:3)

这个怎么样?

if(!a.equals(b)){// or if needed use contains() , equalIgnoreCase() depending on your need
 //concat
}

答案 1 :(得分:1)

字符串不是不同相同的字符串对象被分配给两个不同的变量(“指向同一个内存地址的两个指针”)。

考虑在连接之前将所有字符串转储到Set,这样可以避免连接序列中的重复:

Set<String> strings = new HashSet<String>();
StringBuilder resultBuilder = new StringBuilder();
for (String s:getAllStrings()) {  // some magic to get all your strings
   if (strings.contains(s))
       continue;                  // has been added already
   resultBuilder.append(s);       // concatenate
   strings.add(s);                // put string to set
}
String result = resultBuilder.toString();

答案 2 :(得分:1)

只需创建一个Set(它具有数学集行为,它不会接受重复的对象)

Set<String> strings = new HashSet<String>();

//用所有String对象填充此集

strings.add(A)
Strings.add(B)

//现在迭代这个集合并创建一个String对象

StringBuilder resultBuilder = new StringBuilder();

for(String string:Strings){
resultBuilder.append(string);
}
return resultBuilder.toString()

`

答案 3 :(得分:1)

你可以。试试这样的事情

private String concatStringExample1(String firstString, String secondString) {
            if(firstString.equalsIgnoreCase(secondString)) { // String matched
                 return firstString;  // or return secondString
            } else { // Not matched
                return firstString.concat(secondString); 
            }
        }

private String concatStringExample2(String firstString, String secondString) {
            if(firstString != null && firstString != null ) {
                if(firstString.toLowerCase().indexOf(secondString.toLowerCase()) >= 0)
                    return firstString;
                else if(secondString.toLowerCase().indexOf(firstString.toLowerCase()) >= 0)
                    return secondString;
                else
                    return firstString.concat(secondString);
            } else {
                return "";
            }
        }