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

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

 채택된 답변

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 Exchange에서 Deep 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!