単語の後に句読点を削除する必要があります。たとえば、word?!
をword
に、string:
をstring
に変更する必要があります。Javaで単一の単語に続くすべての句読点を削除するにはどうすればよいですか?
編集:アルゴリズムでは、文字列の最後にある句読点のみを削除する必要があります。 String内の句読点はそのままにしておきます。たとえば、doesn't;
はdoesn't
になります。
単語の後に句読点を削除する必要があります。たとえば、word?!
をword
に、string:
をstring
に変更する必要があります。Javaで単一の単語に続くすべての句読点を削除するにはどうすればよいですか?
編集:アルゴリズムでは、文字列の最後にある句読点のみを削除する必要があります。 String内の句読点はそのままにしておきます。たとえば、doesn't;
はdoesn't
になります。
正規表現を使用して文字列を変更できます。
String resultString = subjectString.replaceAll("([a-z]+)[?:!.,;]*", "$1");
私は'
が端にあり、それは句読点として使用される場合の知っている何の「言葉」はありません。だから、この正規表現はあなたのために働くでしょう。
文字列に1つの単語が含まれていて、その目的が*末尾の*句読点文字を削除する場合は、式を簡略化することができますが、OPは明らかになりませんでした... – bobbymcr
bobbymcr後ろの句読点だけを削除しようとしました。この場合、式はどのように単純化できますか? – user1044680
それは動作します、ありがとうございます。 – user1044680
正規表現を受け入れる方法replaceAll(...)
を使用してください。
String s = "don't. do' that! ";
s = s.replaceAll("(\\w+)\\p{Punct}(\\s|$)", "$1$2");
System.out.println(s);
有効な他の位置に句読点を表示することはできますか?言ってやるがいい、 ":テスト"という言葉があれば、そのマークは残っているのか、それとも取り替えられるのだろうか?基本的には、すべてのマークを削除しているのですか、言葉の最後だけですか? – Bryan