如何避免字符串重复

问题描述:

我有两个不同string String A="example"; String B="example"; 如果concat这两个字符串我得到examplexample.是否有任何可能避免重复的字符串具有相同的名称.. ??如何避免字符串重复

+0

目前还不清楚你想要做什么?你为什么串联字符串,如果你不希望* *他们串联?你可以提供更多样本输入/输出吗? – 2011-05-17 06:01:18

这个怎么样?

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

字符串不不同,所述相同字符串对象被分配到两个不同的变量(“两个指针到同一存储器地址”)。

考虑在连接前倾倒所有字符串为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(); 

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

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

//填写这组所有的String对象

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

//现在重复这一套,并创建一个字符串对象

StringBuilder resultBuilder = new StringBuilder(); 

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

`

可以。尝试这样的事情

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 ""; 
      } 
     }