2016-05-15 4 views
-2

を文の一部を交換してください。は、私はこのコードで、この文字列</p> <pre><code>String sampl = "Mab by Gap David . Leave my Food" </code></pre> <p>を交換しようとしています空のスペースで

しかし、現在、私はどのように私はMab by Gap Davidを得るようにしてくださいMab by Gap David my Food

を取得していますか?

+3

まあ、あなたのコードは、あなたがするように求めるものです。 'replaceAll'は正規表現を使用しているので' replace'( '。"、 "")は全てのドットを削除し、 'replaceAll(" Leave。 "、" ")'は '' ' regexは '\ r'' \ n'のような行区切り文字以外の文字を表します。 – Pshemo

+0

最初の文だけが必要ですか?あなたのコードが期待していることを説明してください。そうすれば、pplは完全に動作するコードを作りたいと思っていることを理解することができます。 – venkatKA

+0

@venkatKA、はい私はちょうど最初の文が欲しいです。 – X09

答えて

3

あなただけの最初の文をしたい場合は、それが文のターミネータの後に何を削除することを意味します。

あなたの例からは、文章ターミネーター自体も削除したいと思うようです。ターミネータの前に空白を削除することも論理的です。

文末記号は、ピリオド(.)、疑問符(?)、または感嘆符(!)として定義できます。もちろん、どのようなセンテンスターミネーターを自分で決定することもできます。

So.だからあなたのコードは次のようになり\s*[.?!].*

String authorf = sampl.replaceAll("\\s*[.?!].*",""); 

regex101.com for exampleを参照した後、何も選択も\s*[.?!]
:前にスペースを選択する。また[.?!]
:文のターミネータを探します。

+0

これは保守が難しく、特定のケースでのみ機能します。 – Lee

+0

より良い解決策。ありがとう。私は完全な停止とそれの後のすべてを取り除きたいので、私の目的を果たします。 – X09

+0

@Leeどの部分を維持するのが難しいですか?どのような特別な場合ですか?それは、あなたの答えを置き換える答えよりも専門的ではありません。私の食べ物を残す。今* *は特定のケースでのみ機能します。 – Andreas

1

sampl.replace(" . Leave my Food", "")

+2

'Leave my Food'をハードコードすると、結果をハードコードすることもできます:' String authorf = "Mab by Gap David" 'テキストを知らなくてもそれをすることがポイントではないでしょうか? – Andreas

+0

あなたの解決策は何でしょうか? – Lee

+0

すべてをピリオドで置き換えます。 [私の答え](http://stackoverflow.com/a/372​​33269/5221149)を参照してください。 – Andreas

関連する問題

 関連する問題