Java-使用特殊符号后如何删除单词

Java-使用特殊符号后如何删除单词,java,stack,Java,Stack,如何删除后跟特殊字符(#)的单词?例句:从一个短语:Eva有绿色的眼睛我想删除“绿色”(Eva有眼睛)这个词,这个词以空格结尾 另外,我在删除后面跟@的整行时遇到问题 例:Eva有green@eyes-->并且应该是“眼睛”” 我的代码(我不知道如何才能完成它): 类堆栈{ 公共堆栈(){ del='&';//该方法只删除一个字符 //例:ab&cd--->acd 销毁='@'; delWord='#'; 堆栈=新堆栈(); } 公共void方法(字符串) { 对于(inti=0;iacd {

如何删除后跟特殊字符(#)的单词?例句:从一个短语:Eva有绿色的眼睛我想删除“绿色”(Eva有眼睛)这个词,这个词以空格结尾

另外,我在删除后面跟@的整行时遇到问题

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

类堆栈{
公共堆栈(){
del='&';//该方法只删除一个字符
//例:ab&cd--->acd
销毁='@';
delWord='#';
堆栈=新堆栈();
}
公共void方法(字符串)
{
对于(inti=0;iacd
{
if(del==string.charAt(i))
{
if(stack.size()>0)
stack.remove(stack.size()-1);
}
else if(destroy==string.charAt(i))
{
stack.remove(stack.size());
}
}
}
}

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

String myString = "eyes#green"
myString = myString.replaceAll("#.*", " ");
第一个参数是与要替换的内容匹配的正则表达式。在本例中,hashtag后跟任何内容(即匹配字符串的其余部分)

第二个参数是应该用什么替换它,在本例中是一个空格


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

要删除紧跟着
@
的整行,请尝试以下操作:

String s = "Eva have green@eyes";
s = s.replaceAll(".*@"," ");
System.out.println(s);
String s= "Eva have green#eyes ";
s= s.replaceAll("\\s*(\\w+)#", " ");
System.out.println(s);
输出:
眼睛


要删除
#
之前的单词,请尝试以下操作:

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

输出:
evahaveeyes

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

String[] string = plainText.split(" ,;[(!)*=]")//not using your #
然后使用simple
for(字符串字:ArrayList)

检查每个单词是否存在#,如果您发现这些单词没有写入另一个数组列表或字符串数组右侧

请阅读此处并了解正则表达式。如果我键入了另一个单词,请尝试使用另一个单词,首先从开头删除到
@
,第二个只是删除空格和
#
之间的单词,谢谢,但是我不能替换它们,因为它们必须像它们有一些功能一样工作,例如,如果我有一个ab和cd字符序列,第一个转换应该删除“b”,第二个应该删除“a”,所以结果应该是“cd”。#也是一样:如果我有一个短语Eva have green@@eyes,第一个转换应该删除单词“green”,第二个是单词“have”,因此在结果中我应该得到“Eva eyes”