如何删除字符串Java中出现的所有单词

时间:2014-04-25 20:14:00

标签: java string removeall

String test = "This is my learning of java language and this is interesting";

我想选择这个字符串的第一个单词并删除它的所有出现,结果应该是

String test = "is my learning of java language and is interesting";

所以我可以知道“这个”字被删除了,它在给定的字符串中出现了2次。

提前致谢...

7 个答案:

答案 0 :(得分:2)

您可以使用(?i)进行不区分大小写的匹配:

例如:

    String test = "This is my learning of java language and this is interesting";
    String newTest = test.replaceAll("(?i)"+test.split(" ")[0], "").trim();

答案 1 :(得分:1)

这样的东西?

test = test.replaceAll((test.split(" ")[0]), "");

编辑:好的,不区分大小写使这更有趣。

String[] words = test.split(" ");
String firstword = words[0];
String test = "";
for(String word : words) {
    if(!word.equalsIgnoreCase(firstword)) {
        test += " " + word;
    }
}

我在浏览器中写这些内容,所以它可能并不完美,但这应该会让球滚动。

答案 2 :(得分:1)

为简单起见,该示例假设存在有效输入。

 11   public static String removeAllOccuranceOfFirst(String input) {
 12   
 13     String[] words = input.split(" ");
 14   
 15     String firstWord = words[0];
 16   
 17     StringBuilder result = new StringBuilder();
 18   
 19     for(int i=1; i<words.length; i++) {
 20   
 21        if(firstWord.equlaIgnorecase(words[i]) == false) {
 22           result.append(words[i]);
 23           result.append(" ");      
 24        }
 25     }
 26   
 27     return result.toString();
 28   }

所以这里发生了什么事。

13 - 我们将输入分成单独的字符串(单词),因为我们将空格视为分隔符。如果你有昏迷,分号程序将失败。 (一个让你纠正的家庭作业:)

15 - 我们拿起arra索引零下的第一个单词。 Java数组索引从零开始。

17 - 我们创建了一个字符串构建器的实例,这个类专门用于字符串操作,因为String本身是不可变的,一旦创建无法更改并且必须创建新的。

19 - 我们从索引1开始循环并遍历所有wrod。

21 - 我们比较当前(i)单词不等于第一个单词

22 - 如果不相等,我们将它附加到我们的StringBuilder。

28 - 我们将StringBuilder实例转换为String并返回它。

答案 3 :(得分:1)

gtgaxiola的答案版本:

String test = "This is my learning of java language and this is interesting";
String newTest = test.replaceAll("(?i)\\b" + test.split(" ")[0] + "\\b *", "").trim();

如果你的“单词”中有特殊字符的可能性,那么这个更强大:

String newTest = test.replaceAll("(?i)\\b" + Pattern.quote(test.split(" ")[0]) + "\\b *", "").trim();

这会检查以确保删除的单词位于单词边界(即不是较大单词的一部分),并且还会删除删除单词后面的任何空格字符。

答案 4 :(得分:0)

 test.replaceAll("This","").replaceAll("this", "")

答案 5 :(得分:0)

就像那样:

String firstWord = test.split(" ")[0];
if (firstWord != null){
    String result = test.replaceAll(firstWord , "");
}

答案 6 :(得分:-1)

+1 Cody S另一种方式就是这个

String firstword =test.split(" ")[0];

test=test.replaceAll(firstword, "");