在java中,如何追加字符串忽略重复

时间:2009-09-23 11:53:03

标签: java

我有字符串说“ABC,D”,现在我希望编写一个方法append(initialStr, currStr ),只有在{{1}中没有currstr时才会将currStr附加到initailStr }。我尝试了一个用逗号分割的方法,但由于我的字符串包含逗号,所以该方法对我不起作用。任何帮助将不胜感激。

4 个答案:

答案 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