java中是否有命令删除某个单词之后或之前的其余字符串;
示例:
在“take”一词之前删除子字符串
之前: “我需要删除这些单词”
后:
“请取悦”
答案 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-lang
类StringUtils
包含您想要的内容:
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, "");
}