2017-11-02 7 views
-1

javaを使用して文字列を解析/消去する方法はありますか?Java文字列2つの小文字の文字列の間のスペースを置き換えます。

入力: "ソフトウエア縁起ニア"

所望の出力:"([a-z])\s([a-z])": "ソフトウェアエンジニア"

私はこの正規表現を持っています。文字列"t w""i n"が見つかります。しかし、検索された文字列の間のスペースをどのように置き換えるのですか?

System.out.println("Soft ware Engi neer".trim().replace("([a-z])\\s([a-z])", "$1$2")); 

は印刷する必要があります:Software Engineer

上記の正規表現を/メモ帳++での細かい作品を交換してください。空の文字列と

+0

[ 'String.replace()'](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#replace-java.lang.CharSequence- java.lang.CharSequence-)は正規表現を処理しません。おそらく、あなたは['String.replaceFirst()'](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#replaceFirst-java.lang.String-java.lang .String-)または['String.replaceAll()']](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#replaceAll-java.lang.String-java .lang.String-)? – Phylogenesis

+0

はい、replaceAllが機能します。私は何とかそれを逃した。他のすべてのコードでは、replaceAllを使用します。ありがとう! – alltej

答えて

1
a lookahead and a lookbehind

使用正規表現、および交換するスペース:

System.out.println("Soft ware Engi neer".replaceAll("(?<=[a-z])\\s(?=[a-z])", "")); 

単一のスペースがと小文字の文字が続く先行試合でこの正規表現。文字自体はではなく、が含まれています。

Demo.

0

replaceAll作品へのメソッド呼び出しを交換してください。

System.out.println("Soft ware Engi neer".trim().replaceAll("([a-z])\\s([a-z])", "$1$2")); 
関連する問題