我有字符串说“ABC,D”,现在我希望编写一个方法append(initialStr, currStr )
,只有在{{1}中没有currstr时才会将currStr
附加到initailStr
}。我尝试了一个用逗号分割的方法,但由于我的字符串包含逗号,所以该方法对我不起作用。任何帮助将不胜感激。
答案 0 :(得分:6)
String appendIfNotPresent(String initial, String curr)
{
if (initial.contains(curr))
return initial;
else
return initial + curr;
}
答案 1 :(得分:2)
我会这样写,以使其适用于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;
}
}
答案 2 :(得分:0)
一种选择是使用indexOf()
来确定一个字符串是否包含在另一个字符串中。
int i = initialStr.indexOf(currStr)
if(i != -1){
//go ahead and concatenate
}
答案 3 :(得分:0)
您可以使用indexOf
搜索currStr。如果indexOf
方法返回-1,则表示没有匹配项。任何其他数字都将是子字符串的起始位置。
if(initialStr.indexOf(currStr) == -1) {
initialStr += currStr;
}
此外,如果大小写无关紧要,可以将toLowerCase()或toUpperCase()添加到上面的代码示例中:
if(initialStr.toLowerCase().indexOf(currStr.toLowerCase()) == -1) {
initialStr += currStr;
}
如果要执行大量字符串操作,我建议查看Apache Commons Lang库中的StringUtils类。它提供了许多有用的方法。以下是API的链接:http://commons.apache.org/lang/api-release/org/apache/commons/lang/StringUtils.html