姓名の分け方について教えてください

フォーラムの皆様
いつも参考にさせていただいてます。

あるシステムから
田中 一郎
さんという方を変数として抜き出すことに成功した後
姓 田中
名 一郎
に分ける方法に苦労しています。

Split関数を使えば大丈夫かな
と思ったのですが、全角スペースをどうやって表現するかで
苦しんでいます。Split(" "C)ではうまくいきませんでした。

全角スペースを根拠に、姓と名を分ける方法を教えていただけませんでしょうか。
よろしくお願いいたします。

こんにちは

間の文字が全角スペースなら、元の文字列をtextとすると、
text.Split(" "c) で分割できると思います。
もし分割できないなら、間の文字は全角スペースではないと思われます。

もし間の文字の空白が厳密に特定できない場合は、例えば以下の正規表現分割を試してみてください。

nameArray = System.Text.RegularExpressions.Regex.Split(text,"\s+")
lastName = nameArray(0)
firstName = nameArray(1)
1 Like

前提なら、全角スペースを半角スペースに置換してから、Split(" "C)するってのは、如何でしょう?

2 Likes

こんにちは、
この課題としてはSplit使用前に全角スペースが半角スペースにReplaceに変換すれば解決できると思います。例えば、
代入
strFirstName = strFullName.Trim.Replace("全角スペース","半角スペース").Split("半角スペース ".ToArray)(0)
forum のtext boxは全角スペースは表示できないので全角スペースと半角スペースで記入した。(笑)

1 Like

半角スペース:△
全角スペース:□

なんて使い分けしてみたりしますけど、意外と面倒(^・^)

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.