如何删除以这个词结尾的单词?

时间:2013-03-08 23:45:57

标签: java string

我想删除以这些字符串结尾的单词

hello_hi
sorry_hr
good_tt

我想删除以_tt_hr结尾的字词。怎么做?

     is this is good way?

       String word = word.replace("_hi", "");

4 个答案:

答案 0 :(得分:2)

所以你有一个像:

这样的字符串
     String str = "hello_hi sorry_hr good_tt";

然后在要应用的这三个规则中总结了您想要的内容:

1)删除hello_hi,因为它以_hi

结尾

2)删除_hr并保留这个词,对于这个特殊情况,它会留下遗憾

3)保持good_tt,因为它没有* _hi或* _hr形式,但是* _tt

然后,最后一个字符串将是“sorry good_tt”

我们这样做

    String[] strings = str.split(" ");
    ArrayList processed = new ArrayList();
    for (String token : strings) {
        if (token.endsWith("_hr")){ //rule 2
            processed.add(token.replace("_hr", ""));
        } else if (token.endsWith("_hi")) { //rule 1
            continue;
        } else { //any other case, rule 3
            processed.add(token); 
        }
    }

这样,您将在处理后列出结果:“抱歉”“good_tt”

    System.out.println(processed.toString());

获得以下输出:

    [sorry, good_tt]

答案 1 :(得分:1)

我假设您有一个包含您的令牌的字符串,该令牌以例如_tt并且您想从该字符串中删除该单词。

String[] tokens = yourStr.split(" ");
for (String t : tokens) {
   if (t.endsWith("_tt") {
       yourStr = yourStr.replaceAll(t, "");
   }
}

答案 2 :(得分:0)

如何使用regular expressions

答案 3 :(得分:0)

String[] tokens = str.split(" ");
List<String> good = Lists.newArrayList();
for (String token : tokens) {
    if (token.endsWith("_hr") || token.endsWith("_tt")) continue;
    good.add(clip_end(token));
}
join(good);

String clip_end(String str)应该关闭_hi。它只是对indexOf和substring的简单调用。

String join(List<String> strs)只是与空格连接。

本着SO的精神,你可以写剪辑和加入。额外的功劳,用StringBuilder替换good列表并直接将输出写入其中。