2012-05-13 7 views
0

私は "John B. Smith"という名前を持っています。名前のフォーマットを "Smith、John B."に変更する必要があります。私は正規表現を使用することを考えていたが、それについても読んだ後でも完全に理解していない。助けてもらえますか?表示名文字列を「最初のM.最後」から「最後の最初のM」に変更しますか?

また、式で何が起こっているのかを説明するのに少し時間を取ることができますか?

+2

ステップ#1何か起こったことを観察する#3更新/修正して続行するか、 –

答えて

1

ここでは、Rubularに設定した例を示します。

私が使用した正規表現は(\w+)\s+(\w+)\s+(\w+)です。ここでのブレークダウンです:

  1. 私は\w+を使用する場合、私は一つ以上の文字、数字、またはアンダースコアで正規表現を探していますと言っています。これは一般的に言葉を探すのに使われます。
  2. \s+を使用すると、1つ以上の空白文字を探しています。
  3. ()は、この正規表現が一致した入力部分をキャプチャしたい(覚えている)ことを意味します。
+0

これはすばらしいサイトです – Lambda

1

Regexは、正規表現が一般的に使用される電子メールアドレスまたはHTTPアドレスを解析するのと比較して、名前のような単純なものを解析するのに不慣れかもしれません。

スペース文字で名前を分割してから、3番目の配列要素(Smith)で最初の(John)の前にカンマを挿入して新しい文字列を作成してみませんか?

+0

と同様の名前をつけてください( "\\ s")System.out.println( "nameArray [1] +" 、 "+ nameArray [0] – Lambda