Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从字符串中删除单词(使用特定方法时)_Java - Fatal编程技术网

Java 从字符串中删除单词(使用特定方法时)

Java 从字符串中删除单词(使用特定方法时),java,Java,我想从给定字符串中删除一个特定单词(“STOP”)的所有实例。 我需要首先拆分字符串来完成此操作 到目前为止,我得到的是: public static String telegram(String sentence) { String[] words = sentence.split(" "); for(int i = 0; i < words.length; i++) { if(words[i].equals

我想从给定字符串中删除一个特定单词(“STOP”)的所有实例。 我需要首先拆分字符串来完成此操作

到目前为止,我得到的是:

public static String telegram(String sentence)
    {
        String[] words = sentence.split(" ");
        for(int i = 0; i < words.length; i++)
        {
            if(words[i].equals("STOP"))
            {
                ...
            }
        }

    }
公共静态字符串电报(字符串语句)
{
字符串[]单词=句子。拆分(“”);
for(int i=0;i
如何删除这些单词? 我尝试过使用for循环并使数组元素中的单词为null,但我不确定这是否有效

我需要使用append(String)和toString()方法,但我不知道如何使用它们

提前谢谢

试着用
句子=String.replaceAll(“停止”,“停止”)

编辑:对不起,误会了


按照建议使用StringBuilder

如果必须使用拆分方法执行此操作,您可能需要这样的操作

public static String telegram(String sentence)
{
    String[] words = sentence.split(" ");
    StringBuilder result= new StringBuilder();
    for(int i = 0; i < words.length; i++)
    {
        if(!words[i].equals("STOP"))
        {
            result.append(words[i]);
            result.append(" ");
        }
    }
  return result.toString();

}
公共静态字符串电报(字符串语句)
{
字符串[]单词=句子。拆分(“”);
StringBuilder结果=新建StringBuilder();
for(int i=0;i

如果您不必使用slip,我建议您使用replace all方法,使代码更简单。

首先,从技术上讲,您不能从字符串中删除单词。在Java中,字符串是不可变的。然后,您可能想做的是创建一个与原始字符串完全相同的新字符串,只是删除了单词“STOP”

通过使用
String.replaceAll
(),您可以相当轻松地完成此操作。事实上,该方法可能如此简短:

编辑:对不起,我没有注意到您对必须使用的方法有限制


您可能想看看StringBuilder。在使用分隔符“STOP”拆分字符串之后,您将得到一个字符串数组,该字符串包含删除了stops的消息。然后,您可以使用
StringBuilder.append
()再次创建表示整个消息的StringBuilder,然后使用StringBuilder的
toString()
方法将StringBuilder的内容作为字符串返回。

如果您只想使用append和toString,则可以执行此操作

            public static String telegram(String sentence) {
                String[] words = sentence.split("STOP");
                StringBuilder builder = new StringBuilder();
                for (int i = 0; i < words.length; i++) {
                    builder.append(words[i]);
                }
                return builder.toString();

            }
公共静态字符串电报(字符串语句){
字符串[]单词=句子。拆分(“停止”);
StringBuilder=新的StringBuilder();
for(int i=0;i
此方法将接收哪些输入示例?提示-->使用
StringBuilder
。它已将append和toString()重新读取帖子。一定要用一些方法!我想把你的-1还给你,但现在它基本上是一个注释。@alex2410在你的答案下面有[delete]选项。请随意使用它。这样,您将恢复失去的声誉,类似答案的数量将减少,使此问题更具可读性。很抱歉误解了此问题:)此方法有效,但删除了所有空格。这里有一个输入/输出示例:输入:“停车标志是一个八角形标志,上面有停车标志。停车你应该总是停下来看停车标志。停止”输出:“停车标志是一个八角形标志,上面有停车标志。你应该总是停下来看停车标志。”是的,忘了那些小家伙了。。我会做一份报告edit@TrickBoss您可以使用
result.append(words[i]).appent(“”)
虽然您应该只为
i
执行此操作,但不要在最后一个单词后添加空格。对不起,我没有注意到这一点。我更正了我的帖子,使用OP指定的方法。对不起,我的错。您正在拆分
“STOP”
,这也是我要建议的方法,因为没有关于拆分中应该使用什么字符串的信息。我猜对你来说是+1,但我也会在
“STOP”
之后添加一个空格,假设这是正确的。要求中没有提到空格。上面的每个例子都假设单词STOP前后都有空格。
            public static String telegram(String sentence) {
                String[] words = sentence.split("STOP");
                StringBuilder builder = new StringBuilder();
                for (int i = 0; i < words.length; i++) {
                    builder.append(words[i]);
                }
                return builder.toString();

            }