如何避免字符串重复
问题描述:
我有两个不同string String A="example"; String B="example";
如果concat这两个字符串我得到examplexample.
是否有任何可能避免重复的字符串具有相同的名称.. ??如何避免字符串重复
答
这个怎么样?
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 "";
}
}
目前还不清楚你想要做什么?你为什么串联字符串,如果你不希望* *他们串联?你可以提供更多样本输入/输出吗? – 2011-05-17 06:01:18