0

特定の文字列から特定の 1 つの単語 ("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 ループを使用して、null という単語で Array 要素を作成しようとしましたが、それが機能するかどうかはわかりません。

メソッド append(String) および toString() を使用する必要がありますが、これらの使用方法がわかりません。

前もって感謝します!

4

4 に答える 4

3

split メソッドでこれを行う必要がある場合は、このようなものが必要になります。

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();

}

スリップを使用する必要がない場合は、すべて置換メソッドを使用することをお勧めします。コードをよりシンプルにします。

于 2013-10-30T18:00:08.620 に答える
1

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();

            }
于 2013-10-30T18:37:33.100 に答える
-1

まず、技術的には、文字列から単語を削除することはできません。Java では、文字列は不変です。おそらくやりたいことは、「STOP」という単語が削除されていることを除いて、元の文字列とまったく同じように新しい文字列を作成することです。

String.replaceAll( JavaDoc )を使用すると、これをかなり簡単に行うことができます。実際、メソッドは次のように短くなる可能性があります。

return sentence.replaceAll("STOP", "");

編集: 申し訳ありませんが、使用するメソッドに制約があることに気づきませんでした。

StringBuilder を参照してください。区切り文字「STOP」でストリングを分割した後、ストップが削除されたメッセージを構成するストリングの配列が残ります。次に、StringBuilder.append( JavaDoc ) を使用してメッセージ全体を表す StringBuilder を再度作成し、StringBuilder のtoString()メソッドを使用して StringBuilder の内容を String として返すことができます。

于 2013-10-30T18:00:27.230 に答える
-1

で置き換えてみてください sentence = String.replaceAll("STOP","");

編集:申し訳ありません誤解

StringBuilderを推奨どおりに使用する

于 2013-10-30T17:57:18.700 に答える