- ベストアンサー
ハイフンを全角に変換する方法はありますか?
- ハイフンを全角に変換する方法について質問があります。
- 例えば、半角数値と半角ハイフンしかない文字列を全角に変換する方法を知りたいです。
- 現在のコードでは、数値を全角に変換することはできますが、ハイフンの変換方法がわかりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
単にこれでよいんですかね? 英数字の半角全角への変換はコードの並び順が一致しているため、文字コードの加算、減算で計算できると思いますが、-のところは意味がわからないと思います。 変換したいものをひとつづつ書くしかないんじゃないでしょうか? String Conversion(String s) { StringBuffer sb = new StringBuffer(s); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if ((c >= '0' && c <= '9')) { sb.setCharAt(i, (char) (c - '0' + '0')); } else if (c >= 'a' && c <= 'z') { sb.setCharAt(i, (char) (c - 'a' + 'A')); } else if (c == '-') { sb.setCharAt(i, '‐'); } } return sb.toString(); }
その他の回答 (1)
- int3
- ベストアンサー率34% (65/190)
パフォーマンスやなにか特別な処理をあとからいれることをきにして一文字ずつ処理しているということでしょうか? 単に目的だけを達したいのであれば、 s = s.replaceAll("-","-"); とかでよいのではないでしょうか?
補足
ご回答ありがとうございます。 import java.text.Normalizer.Formメソッドで 半角カナを全角カナに置換して その他に半角英字・数字→全角英字・数字に変換しているのですが String Conversion(String s) { StringBuffer sb = new StringBuffer(s); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if ((c >= '0' && c <= '9')) { sb.setCharAt(i, (char) (c - '0' + '0')); } else if (c >= 'a' && c <= 'z') { sb.setCharAt(i, (char) (c - 'a' + 'A')); } } return sb.toString(); } replaceAllの構文を加えても反応がありません。 こういった複数の作業を行っている場合 なにか注意点はありますか?
お礼
else if (c == '-') { sb.setCharAt(i, '-');で対応出来ました。 なかなか変換出来なかったので 助かりました。 どうもありがとうございました。