A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
Javaの中で全角英数字という表現がそもそもおかしいかもしれません。
Unicodeの0~9、A~Z、a~z、-をASCIIにしたいだけであれば、16進数表記した際の頭の00を取り除くだけだと思いますがいかがでしょうか。
この回答へのお礼
お礼日時:2003/05/12 21:03
超クールな方法を教えていただきありがとうございます。文字コード体系を生かした方法という発想は全くありませんでした。大変参考になりました。
No.2
- 回答日時:
Unicodeでいわゆる全角文字のAからZは0xFF21から0xFF3Aに、aからzは0xFF41から0xFF5Aに、
0から9は0xFF10から0xFF19に割り当てられています。
半角文字のAからZは0x0041から0x005Aに、aからzは0x0061から0x007Aに、0から9は0x0030から0x0039に割り当てられています。
この関係で変換すればよいと思います。
以下がその例です。
ハイフン(に見える)文字は何種類かありますので、調べられたもののみで対応しました。
public class halfchar {
private static final byte HyphenBytes[] =
{ 0x22, 0x12, 0x00, 0x2D, 0x20, 0x10, 0x30, (byte)0xFC, (byte)0xFF, 0x0D };
public static void main(String args[]) {
String Str, HyphenStr;
char Chr;
StringBuffer StrBuff = new StringBuffer();
byte b[];
int i, j, HyphenLen;
try {
HyphenStr = new String(HyphenBytes, "UTF-16BE");
HyphenLen = HyphenStr.length();
for (i = 0; i < args[0].length(); i ++) {
Chr = args[0].charAt(i);
Str = Character.toString(Chr);
if (Str.matches("[[A-Z][a-z][0-9]]")) {
b = Str.getBytes("UTF-16BE");
b[0] = 0;
b[1] += (byte)0x20;
StrBuff.append(new String(b, "UTF-16BE"));
}
else {
for (j = 0; j < HyphenLen; j ++)
if (HyphenStr.charAt(j) == Chr) break;
if (j == HyphenLen) StrBuff.append(Chr);
else StrBuff.append("-");
};
};
System.out.println(StrBuff.toString());
} catch (Exception e) { System.out.println(e.toString()); };
};
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダブルクォーテーションのrepla...
-
javaで質問です。 文字列2023/2...
-
Path型をString型へ変換する(Java)
-
byte配列をImageに変換する
-
int型のゼロ埋め
-
substring バイト単位でやりたい
-
JavaのStringクラスに「外字」...
-
Visual Basic でのコードをASCI...
-
IBM漢字コード⇒SJIS変換方法
-
Windows-31Jからutf-8への変換...
-
javascriptで文字列のsjis利用...
-
カタカナをローマジに変換する。
-
error C2440: 'static_cast' : ...
-
COBOLで半角カナを全角カナに変換
-
phpでの文字コード変換について
-
文字コード変換
-
カタカナの「ソ」以降の文字が...
-
半角全角混在データの中の半角...
-
PerlプログラムをJavaに変換す...
-
InputStream型のキャスト
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
ダブルクォーテーションのrepla...
-
Path型をString型へ変換する(Java)
-
int型のゼロ埋め
-
javascriptで文字列のsjis利用...
-
Visual Basic でのコードをASCI...
-
JavaのStringクラスに「外字」...
-
カタカナをローマジに変換する。
-
C言語32bitから64bitの移行につ...
-
UTF-8とUnicodeの互換性
-
COBOLで半角カナを全角カナに変換
-
文字列の比較
-
byte[] を long,float とかに...
-
全角英数字とハイフンを半角に...
-
byte型のマイナスの扱いについて
-
TEXTAREAからのデータを改行入...
-
javaの初歩的な質問です。
-
エクセルVBAで「〜」が表現でき...
-
DBから取得したデータの文字化け
-
[Javascript]エンターキー押下...
おすすめ情報