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

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

 採用された回答

Kazuya
Kazuya 2019 年 5 月 7 日

1 投票

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

4 件のコメント

qrqr
qrqr 2019 年 5 月 7 日
私が言っているのはそのリンク先のことです。
michio
michio 2019 年 5 月 12 日
書き換え、試してみましたか?
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 ExchangeDeep Learning Toolbox についてさらに検索

製品

リリース

R2013b

質問済み:

2019 年 5 月 7 日

コメント済み:

2019 年 5 月 23 日

Community Treasure Hunt

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

Start Hunting!