- PR -

C#による半角⇔全角変換の方法は?

投稿者投稿内容
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2004-03-29 17:22
こんにちは!
C#による半角⇔全角変換の方法について悩んでいます。
C#にメソッドはありませんか?
VBのメソッドは使用したくありません。

よろしくお願いします。
THE
会議室デビュー日: 2004/02/05
投稿数: 9
投稿日時: 2004-03-29 17:52
引用:

damepgさんの書き込み (2004-03-29 17:22) より:
こんにちは!
C#による半角⇔全角変換の方法について悩んでいます。
C#にメソッドはありませんか?
VBのメソッドは使用したくありません。

よろしくお願いします。




全角への変換は.ToUpper()メソッド
半角への変換は.ToLower()メソッドでOKです。

詳しくはここを参照してください。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconchangingcase.asp

burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-03-29 17:57
私も昔、半角⇔全角変換でいろいろ調べましたが
C#だけでやるには自作するしかないという結論に達して
結局、Microsoft.VisualBasicを使用しました。。。
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2004-03-29 18:03
回答ありがとうございます。
下記の方法を試しましたが、半角文字「aa」は「AA」になるだけでした。
全角「AA」にするにはどうしたらよいでしょうか?

public static string Method1(string str)
{
return str.ToUpper();
}


引用:

THEさんの書き込み (2004-03-29 17:52) より:
引用:

damepgさんの書き込み (2004-03-29 17:22) より:
こんにちは!
C#による半角⇔全角変換の方法について悩んでいます。
C#にメソッドはありませんか?
VBのメソッドは使用したくありません。

よろしくお願いします。




全角への変換は.ToUpper()メソッド
半角への変換は.ToLower()メソッドでOKです。

詳しくはここを参照してください。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconchangingcase.asp



KEI
会議室デビュー日: 2003/12/25
投稿数: 4
投稿日時: 2004-03-29 18:18
burton999さんも仰っていますが、C#では面倒です。String.Replaceメソッドで根気よくやるしかないと思います。私も諦めて、Microsoft.VisualBasicを使いました。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-03-29 18:23
ToUpper()、ToLower()は全角半角ではなくて、大文字小文字の変換ですね。

全角半角の変換はおそらくないと思います。
(私は、マイクロソフトはわざと用意しなかったのだろうと想像していますが)

もし新しいプログラムを作っているのなら、全角/半角などという概念はないものとしてプログラムを作ると良いですよ。
つまり"A"と"A"は全く関係の無い文字として扱うということです。
"○"(まる)と"O"(オー)が全く関係が無いのと同じように、です。
TakeOne
会議室デビュー日: 2004/03/04
投稿数: 9
投稿日時: 2004-03-30 11:38
引用:

VBのメソッドは使用したくありません。



というのを「VB.NETのコードを混ぜたくありません」と勝手に曲解しまして…
上でもあがってるように、Microsoft.VisualBasicを使うのがいちばん簡単だと思います。
VB.NETもC#もみんなCLRでは仲間なので、C#からVB.NETのStrConvを呼び出すことが出来ます。
以下サンプル。全角カタカナの「アイウエオ」を半角の「アイウエオ」に変換します。

コード:

using System;
using Microsoft.VisualBasic; //VB.NETのStrConv呼出用

namespace Test7{
class Test7Class{
static void Main(){
string s = Strings.StrConv("アイウエオ", VbStrConv.Narrow, 0);
Console.WriteLine(s);
}
}
}


コンパイル方法
コード:

csc test7.cs /reference:microsoft.visualbasic.dll



VisualStudio使うときはmicrosoft.visualbasic.dllを参照設定すればいい(のかな?)

どうしてもVB.NETを混ぜ込むのはやだ!というのなら、WindowsAPIのLCMapStringと格闘することになります。

[ メッセージ編集済み 編集者: TakeOne 編集日時 2004-03-30 11:59 ]
CHN
ぬし
会議室デビュー日: 2002/03/07
投稿数: 382
投稿日時: 2004-03-30 11:50
引用:

damepgさんの書き込み (2004-03-29 17:22) より:
こんにちは!
C#による半角⇔全角変換の方法について悩んでいます。
C#にメソッドはありませんか?
VBのメソッドは使用したくありません。

よろしくお願いします。



こんにちは。
難しいこと考えずに、変換テーブルでも作れば良い
と思いますが、無理ですか?
全角、半角にできるものは限りがありますから、「作ってしまえ」が
一番かと。
一度つくったら、ずっと使えますし。
_________________

スキルアップ/キャリアアップ(JOB@IT)