在java中,如何附加忽略重复项的字符串
我的字符串是“ABC,D”,现在我想写一个方法在java中,如何附加忽略重复项的字符串,java,Java,我的字符串是“ABC,D”,现在我想写一个方法append(initialStr,currStr),仅当currStr在initialStr中不存在时才将currStr追加到initailStr。我尝试了一个用逗号分隔的方法,但由于我的字符串包含逗号,所以该方法对我不起作用。任何帮助都将不胜感激。一个选项是使用indexOf()确定一个字符串是否包含在另一个字符串中 String appendIfNotPresent(String initial, String curr) { if (i
append(initialStr,currStr)
,仅当currStr在initialStr
中不存在时才将currStr
追加到initailStr
。我尝试了一个用逗号分隔的方法,但由于我的字符串包含逗号,所以该方法对我不起作用。任何帮助都将不胜感激。一个选项是使用indexOf()
确定一个字符串是否包含在另一个字符串中
String appendIfNotPresent(String initial, String curr)
{
if (initial.contains(curr))
return initial;
else
return initial + curr;
}
int i = initialStr.indexOf(currStr)
if(i != -1){
//go ahead and concatenate
}
您可以使用
indexOf
搜索currStr。如果indexOf
方法返回-1,则不存在匹配项。任何其他数字都将是子字符串的起始位置
if(initialStr.indexOf(currStr) == -1) {
initialStr += currStr;
}
此外,如果大小写不重要,可以将toLowerCase()或toUpperCase()添加到上述代码示例中:
if(initialStr.toLowerCase().indexOf(currStr.toLowerCase()) == -1) {
initialStr += currStr;
}
如果有很多字符串操作要执行,我建议您查看ApacheCommonsLang库中的StringUtils类。它提供了许多有用的方法。下面是API的链接:我会这样写,使其适用于
null
值:
String appendIfNotContained(String initial, String curr) {
if (initial == null) {
return curr;
} else if (curr == null) {
return initial;
} else {
return initial.contains(curr) ? initial : initial + curr;
}
}
次要:名称“append”有一个明确的含义,与此不同。我建议用“appendIfNotPresent”之类的词。