1

如何删除后跟特殊字符(#)的单词?例如:从短语:Eva have green#eyes 我想删除单词“green”(Eva have eyes),即以空格结尾的单词。

我也有删除@后面的整行的问题,

例如:Eva have green@eyes---> 并且应该是“ eyes”我的代码(我不知道如何完成它):

class Stack {

public Stack() {
    del = '&';    //that method deletes only one character
                  //ex: ab&cd ---> acd
    destroy = '@';
    delWord = '#';
    stack = new Stack<Character>();

}

public void methods(String string)
{

    for (int i=0; i< string.length(); i++) //that method deletes only one character
                                       //ex: ab&cd ---> acd
    {
       if ( del == string.charAt(i) )
       {
          if (stack.size() > 0)
             stack.remove(stack.size()-1);
       }
       else if( destroy == string.charAt(i) )
      {
       stack.remove(stack.size());

      }
    }
}
}
4

3 回答 3

0

是的,使用 String 类中的 replaceAll 方法,例如

String myString = "eyes#green"
myString = myString.replaceAll("#.*", " ");

第一个参数是匹配您要替换的正则表达式。在这种情况下,hashtag 后跟任何内容(即匹配字符串的其余部分)。

第二个参数是它应该被替换的内容,在本例中是一个空格。

根据您的目的修改正则表达式。

于 2013-04-16T12:33:27.407 回答
0

要删除后面的整行@,试试这个:

String s = "Eva have green@eyes";
s = s.replaceAll(".*@"," ");
System.out.println(s);

输出 : eyes


并删除之前的单词#,试试这个:

String s= "Eva have green#eyes ";
s= s.replaceAll("\\s*(\\w+)#", " ");
System.out.println(s);

输出 : Eva have eyes

于 2013-04-16T12:36:54.317 回答
0

您可以将字符串转换为数组:

String[] string = plainText.split(" ,;[(!)*=]")//not using your #

然后将其转换为 ArrayList,使用简单的for(String word: arraylist) 检查每个单词是否存在 #,如果您发现这样的单词不要将其写入另一个 ArrayList 或直接写入 String 数组

于 2013-04-16T12:37:59.143 回答