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

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

 Respuesta aceptada

Kazuya
Kazuya el 7 de Mayo de 2019

1 voto

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

4 comentarios

qrqr
qrqr el 7 de Mayo de 2019
私が言っているのはそのリンク先のことです。
michio
michio el 12 de Mayo de 2019
書き換え、試してみましたか?
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 el 12 de Mayo de 2019
ありがとうございます。
変に難しく考えすぎていたので、リストアップするのが早いですね。
自分でも試しましたが、ご回答大変参考になります。
michio
michio el 23 de Mayo de 2019
関数にしてこちらに挙げてみました。参考まで。

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Deep Learning Toolbox en Centro de ayuda y File Exchange.

Productos

Versión

R2013b

Preguntada:

el 7 de Mayo de 2019

Comentada:

el 23 de Mayo de 2019

Community Treasure Hunt

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

Start Hunting!