全角カタカナを半角にする方法

全角カタカナを半角カタカナにするにはどうすればいいですか?
ネット上に半角カタカナから全角カタカナに変換はあったのですが、
逆のパターンが知りたいです。
宜しくお願いします。

 采纳的回答

Kazuya
Kazuya 2019-5-7

1 个投票

ネット上にあったというのは
これですか? 逆のことができるようにいじるのはいい練習になりそうです・・。

4 个评论

qrqr
qrqr 2019-5-7
私が言っているのはそのリンク先のことです。
書き換え、試してみましたか?
String 型を使うと、replace 関数で文字の置き換えができるので少し簡単かと思いましたのでサンプル作ってみました。少しかっこ悪いですが、変更すべき文字を全部リストアップしちゃうのが簡単だと思います。半角カナの濁音は文字2つになる点が少し厄介でしょうか・・。
% 変換すべき文字リスト作成
halfKana = split("アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンー","");
fullKana = split("アイウエオカキクケコサシスセソ" + ...
"タチツテトナニヌネノハヒフヘホ" + ...
"マミムメモヤユヨラリルレロワヲンー","");
halfKanaDakuon = split("カキクケコサシスセソタチツテトハヒフヘホ",{'',' '}) + "゙";
fullKanaDakuon = split("ガギグゲゴザジズゼゾダヂヅデドバビブベボ","");
halfKanaHandakuon = split("ハヒフヘホ","") + "゚";
fullKanaHandakuon = split("パピプペポ","");
% 上の作業では冒頭・最後に不要な文字列が入るので削除
halfKana([1,end]) = [];
fullKana([1,end]) = [];
halfKanaDakuon([1,end]) = [];
fullKanaDakuon([1,end]) = [];
halfKanaHandakuon([1,end]) = [];
fullKanaHandakuon([1,end]) = [];
% 検証(半角 => 全角)
sampleString = '私はタマゴとスムージーとプリンを朝ごはんに食べる';
tmp = replace(sampleString,halfKanaHandakuon,fullKanaHandakuon);
tmp = replace(tmp,halfKanaDakuon,fullKanaDakuon);
sampleStringFull = replace(tmp,halfKana,fullKana)
% 検証(全角 => 半角)
tmp = replace(sampleStringFull,fullKana,halfKana);
tmp = replace(tmp,fullKanaDakuon,halfKanaDakuon);
sampleStringHalf = replace(tmp,fullKanaHandakuon,halfKanaHandakuon)
qrqr
qrqr 2019-5-12
ありがとうございます。
変に難しく考えすぎていたので、リストアップするのが早いですね。
自分でも試しましたが、ご回答大変参考になります。
michio
michio 2019-5-23
関数にしてこちらに挙げてみました。参考まで。

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Deep Learning Toolbox 的更多信息

产品

版本

R2013b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!