任意の長さの部分文字列を置き換える必要があります。たとえば、2つのスペースの間。任意の長さの部分文字列を置換する
例
String str = "Insert random message here";
// Manipulation
System.out.println(str);
// Outputs: Insert a message here
IがStringクラスのメソッドで検索しましたが、私は便利なものを発見していません。
任意の長さの部分文字列を置き換える必要があります。たとえば、2つのスペースの間。任意の長さの部分文字列を置換する
例
String str = "Insert random message here";
// Manipulation
System.out.println(str);
// Outputs: Insert a message here
IがStringクラスのメソッドで検索しましたが、私は便利なものを発見していません。
最も直接的な解決策は、結果ストリング呼び出しのペアを使用して連結することである(それは...私の悪い英語のためかもしれません):
String random = "random"
String str = "Insert random message here";
int nStart = str.indexOf(random);
int nEnd = nStart + random.length;
str = str.substr(0,nStart) + str.substr(nEnd);
System.out.println(str);
// Outputs: Insert a message here
私の数学がひどいです
ノートを、その数字はおそらく1つか2つだけ離れているでしょう!
編集追加する代わりに、「マジックナンバー」
編集の変数を使用する:私はOPと同じ言語を使用していないかもしれないが、うまくいけばそれが理解されるのに十分近いです。
任意の長さ*が意味するように、OPはコード内で6と13の数字をどのように取得しますか? –
私のコードを改訂しました。 – theGleep
しかし、「ランダム」が香りの入力に存在しない場合はどうですか?私がランダムな香りを持っていて、ただ2つのスペースの間で1つを選びたいのであればどうですか?この解決策は、単語「ランダム」を含める必要があることを暗示していませんか? –
System.out.printlnは、これがJavaであると感じています。 オブジェクトのreplaceAll関数を使用して、文字列ブロック/一致正規表現を別の指定文字列に置き換えることができます。
String str = "I am foo";
str.replaceAll("foo", "blah");
System.out.println(str);
上記のコードでは「私は愚かです」と表示されるはずです。
はい!しかし、もしも「foo」のないもう一つの香りがあれば? –
これは、何が期待できるか、つまり何もしなくてはなりません。それは基本的にパターンをmatvhesし、見つかった場合、それを与えられた文字列で置き換えます。 –
あなたは、このように二つの空間の間に最初の単語と一致する意味、この正規表現\s(.*?)\s
でreplaceFirstというを使用することができます:あなたが使用しているどのような言語
String str = "Insert random message here";
str = str.replaceFirst("\\s(.*?)\\s", " a ");
System.out.println(str);
出力
Insert a message here
Intresting!今私たちはどこかに行ってきています... 私は単語を変更したいですか?三番? n:th? –
@randycostanzaこの場合、splitを使ってn番目の単語を置き換えることができます。これは正規表現では可能ではないと思います:) –
。異なる言語には、これに対するさまざまな解決策があります。 – theGleep
置き換えられるテキストを特定するための実際の基準は何ですか?あなたのサンプルテキストには、置き換えられるテキストを囲む3つのスペースがあります。 –
@ theGleep:おっと! Java。 (私が言うことができる方法はありますか?しかし、ここに?) –