在java中的特定单词之后或之前删除部分字符串

时间:2015-03-20 20:08:27

标签: java

java中是否有命令删除某个单词之后或之前的其余字符串;

示例:

在“take”一词之前删除子字符串

之前: “我需要删除这些单词”

后:

“请取悦”

5 个答案:

答案 0 :(得分:6)

字符串是不可变的,但您可以找到该字并创建子字符串

public static String removeTillWord(String input, String word) {
    return input.substring(input.indexOf(word));
}

removeTillWord("I need this words removed taken please", "taken");

答案 1 :(得分:3)

apache-commons-langStringUtils包含您想要的内容:

e.g。 public static String substringBefore(String str, String separator)

答案 2 :(得分:0)

public static String foo(String str, String remove) {
     return str.substring(str.indexOf(remove));
}

答案 3 :(得分:0)

干净的方法可以安全地删除字符串,直到

String input = "I need this words removed taken please";
String token = "taken";
String result = input.contains(token)
  ? token + StringUtils.substringAfter(string, token)
  : input;
  

Apache StringUtils函数为null,empty和没有匹配安全性

答案 4 :(得分:0)

由于OP提供了明确的要求

  

删除字符串的其余部分之后或之前

并且还没有人实现这些,这是我解决问题的方法。实施有一定的规则,但总体来说,如果OP或O来重新考虑问题,它应该可以满足OP的需求。

public static String remove(String input, String separator, boolean before) {
  Objects.requireNonNull(input);
  Objects.requireNonNull(separator);

  if (input.trim().equals(separator)) {
    return separator;
  }

  if (separator.isEmpty() || input.trim().isEmpty()) {
    return input;
  }

  String[] tokens = input.split(separator);

  String target;
  if (before) {
    target = tokens[0];
  } else {
    target = tokens[1];
  }

  return input.replace(target, "");
}