如何删除句子中的一些单词Java?

时间:2012-07-16 07:14:23

标签: java string

假设字符串是:

The/at Fulton/np-tl County/nn-tl Grand/jj-tl

如何删除/之后的字符以及如下所示的输出 The Fulton County Grand

5 个答案:

答案 0 :(得分:8)

看起来像一个简单的基于正则表达式的替换可以正常工作:

text = text.replaceAll("/\\S*", "");

此处\\S*表示“0个或更多非空白字符”。当然,您还可以使用其他选项。

答案 1 :(得分:5)

String input = "The/at Fulton/np-tl County/nn-tl Grand/jj-tl";
String clean = input.replaceAll("/.*?(?= |$)", "");

这是一个测试:

public static void main( String[] args ) {
    String input = "The/at Fulton/np-tl County/nn-tl Grand/jj-tl";
    String clean = input.replaceAll("/.*?(?= |$)", "");
    System.out.println( clean);
}

输出:

The Fulton County Grand

答案 2 :(得分:2)

String text = "The/at Fulton/np-tl County/nn-tl Grand/jj-tl";
String newText = text.replaceAll("/.*?\\S*", "");

来自Java API:

String  replace(char oldChar, char newChar)
Returns a new string resulting from replacing all occurrences of oldChar in this string with newChar.

String  replace(CharSequence target, CharSequence replacement)
Replaces each substring of this string that matches the literal target sequence with the specified literal replacement sequence.

String  replaceAll(String regex, String replacement)
Replaces each substring of this string that matches the given regular expression with the given replacement.

String  replaceFirst(String regex, String replacement)
Replaces the first substring of this string that matches the given regular expression with the given replacement.

如果您需要替换子字符串或字符,请使用前2个方法。 如果您需要替换模式或正则表达式,请使用第2种方法。

答案 3 :(得分:1)

执行以下操作:

startchar :是您要替换的起始字符。

endchar :是您要替换的chich字符的结束字符。

“”:是因为你只想删除它,所以用空格替换

string.replaceAll(startchar+".*"+endchar, "")

参考http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#replaceAll%28java.lang.String,%20java.lang.String%29

另见greedy quantifier examples

参见工作示例

 public static void main( String[] args ) {
        String startchar ="/";
        String endchar="?(\\s|$)";
    String input = "The/at Fulton/np-tl County/nn-tl Grand/jj-tl";
    String clean = input.replaceAll(startchar+".*"+endchar, " ");
    System.out.println( clean);
}

输出

The Fulton County Grand

答案 4 :(得分:1)

这对我有用:

String text = "The/at Fulton/np-tl County/nn-tl Grand/jj-tl";
String newText = text.replaceAll("/.*?(\\s|$)", " ").trim();

收率:

  

富尔顿县大酒店

这基本上取代了/之后的任何字符,后面跟着一个空格,或者字符串的末尾。最后的trim()是为了满足replaceAll方法添加的额外空白。