• ベストアンサー

javaで文字変換したいんです。

たとえば "82 A0 82 A2 82 A4 41 42 43 82 A6 82 A8 " という文字列を "あいうABCえお"に変換したい場合どのようにすればいいのでしょう? 変換前の文字コードはS-JISとします。 変換前の文字列はStringに入っているものとします。 String str="82 A0 82 A2 82 A4 41 42 43 82 A6 82 A8 "; //こんな感じ java は初めてで困ってます。 Cなら何とかなるんですが・・・ どうかお知恵をお授けください。

  • Java
  • 回答数1
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

正規にはCharsetのメソッドを使うのかもしれないけど、 データの形から、URLDecoder.decodeを使うのが簡単かも ----------------------------------------------------- import java.net.*; class Sample { public static void main(String[] args){ try{ String P = ""; String str="82 A0 82 A2 82 A4 41 42 43 82 A6 82 A8 "; str = str.replaceAll("(..) ","%$1"); P = URLDecoder.decode(str,"sjis"); System.out.println(P); } catch(java.io.UnsupportedEncodingException e){ e.printStackTrace(); } } }

shaulanet
質問者

お礼

ありがとうございます。 勉強になりました。(^^)

関連するQ&A

  • javaの文字コード変換について

    javaの文字コード変換についての質問ですが 1 shift_jis → jis83 → jis78 2 jis78 → jis83 → shift_jis と変換をかけたいと思っていますがどのようにすれ ばいいのでしょうか? String str = new String( "hogehoge", "XXX" ); でコンストラクタの2つめの引数に変換をかけたい 文字コードの指定をすればうまくいくのでしょうか? もしそうならなんと指定すればいいのでしょうか? 以上よろしくお願いします

    • ベストアンサー
    • Java
  • 小文字、大文字変換

    こんにちは。 javaの勉強をやっているのでですが 思うとおりに進みません。 一文字ずつ小文字なら大文字に大文字なら小文字に変換するといったものです。 途中経過です。 import java.io.*; class Ex60{ public static void main(String args[])throws IOException{ String str3 ="0"; String output = "0"; String s1 = new String("end"); while(str3.equals(s1) == false ){ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while(str3.equals(s1) == false ){ System.out.print(">"); str3 = br.readLine(); if(str3.equals(s1) == true) break; for(int i=0; i<str3.length(); i++){ char c = str3.charAt(i); if(Character.isLowerCase(c)) output = str3.toUpperCase(); else if(Character.isUpperCase(c)) output= str3.toLowerCase(); } System.out.println("入力された文字列は" + str3 + "です。"); System.out.println("大文字小文字を変換すると" + output + "です。"); } } } } /* 実行結果 >abc 入力された文字列はabcです。 大文字小文字を変換するとABCです。 >AbC 入力された文字列はAbCです。 大文字小文字を変換するとabcです。 >AAb 入力された文字列はAAbです。 大文字小文字を変換するとAABです。 */ 条件として一文字が大文字か小文字の判定にはCharacterクラスの isLowerCase()メソッド、isUpperCase()メソッド 一文字の変換はtoUpperCase()メソッド、toLowerCaseメソッドを使います。 どなたかよろしくおねがいします。

  • JAVA 文字コード変換

    こんにちは。 JAVAの文字コード変換のところで教えて頂きたい所があります。 はしご高(髙)  の文字をUTF-8からJISコードに変換してテキストファイルに書き込んでいるのですが、文字化けして"?"という文字になっています。 "髙"の文字をUTF-8からJISコードに変換の仕方のコーディング方法を教えて頂けないでしょうか。 現在下記の様に変換を行って書き込んでいます。  String str = "髙";  byte[] buf = str.substring(0, 1).getBytes("JIS0208"); OS:WindowsXP DB:Oracle10g  宜しくお願い致しますm(__)m

    • ベストアンサー
    • Java
  • .NET 文字コードの変換

    VB2008で文字列を他の文字コードにする方法が知りたいです。 何かしての部分がわかりません。 VB2005でも使えるものだったらうれしいです。 Dim str_sjis as string Dim str_euc as string = "パソコン" '例えばEUC-JP '''何かして str_sjisにシフトJISで文字列が入っている。 .Netの文字コードの変換の仕方がごちゃごちゃして分かりづらいです。

  • Javaで文字列をゼロ埋め(ゼロパディング)

    Javaで文字列を前ゼロで埋め(ゼロパディング)たいのですが、 exceptionが発生してうまくいきません。 だれかお助け頂けたら助かります。 (例)123の前に0を5つ結合したい場合、 String str2="123"; String str = String.format("%08s",str2); で問題無いと思ったのですが、 exceptionが発生してしまいます。 回答お待ちしております。

    • ベストアンサー
    • Java
  • C# 文字コード変換

    お世話になります C#でプログラムを開発しております その際、ハードウェアへデータを送信するのですが 送信する文字列データをANKコードで送信しなければなりません。 そこで行き詰っているのですが ハードウェアへ ひらがなの 「あ」 を送信する際 「$"」 へ変換して送信する形です ・・・参考・・・ JIS0208コード表 http://ash.jp/code/codetbl2.htm ANKコード表 http://www.asahi-net.or.jp/~ax2s-kmtn/ref/codes. … 以下がプログラムです      str = "あ";      byte[] data = Encoding.GetEncoding("EUC-JP").GetBytes(str);      ret = Encoding.GetEncoding("ASCII").GetString(data);      System.Console.WriteLine("ret:" + ret); 上記のコードでできると思ったのですが ret2:?? となってしまいます。 Javaではできたのですが・・・ いちおう成功したJavaのコードを載せます      str = "あ";      byte[] jis = str.getBytes("jis0208");      String strAscii = new String(jis, "ASCII");      System.out.println("strAscii:" + strAscii); 結果 $" Javaではjis0208でエンコードしてるところを C#ではEUC-JPで行っているのが原因だとは思うのですが ネットで調べてもjis0208はEUC-JPでエンコードするようにあります 私の理解が不足しているのでしょうか お分かりになる方、宜しくお願い致します。

  • javaというか文字列について少し質問です><

    javaというか文字列について少し質問です>< javaというか文字列について少し質問です>< お願いします。 シーザー暗号で文字列をずらすためのクラスのメソッドをつくったのですが・・・ String decrypt(String str,int key) { StringBuffer sb = new StringBuffer(); // もしくはStringBuilder for(int i=0;i<str.length();i++){ char c=str.charAt(i); c=(char)((int)c-key); sb.append( c ); } こんな感じなのですがアルファベットの小文字26文字のみとしたいので暗号化や復号化の際に越えてしまう場合はアルファベット内でループさせたいのですがいまいちやり方が浮かびません><越えてしまう場合はzからひいたものを表現させれば良いかと思いやってみたのですが全然違う文字が出てきてしまいました。何かいい方法を教えてください。お願いします><

    • ベストアンサー
    • Java
  • Javaの文字コード変換方法

    文字コードの変換で困っています。 例えば、標準入力で「あいう」と入力して、その文字列を UTF-8に変換して出力したいのですが、うまくいきません。 サイトにはbyteに変換してから入れると書いていましたが、 よくわかりませんでした。 宜しくお願いします。 以下、今できているソースです。 (ソースコード) import java.io.*; public class ChangeCord { public static void main( String[] args ) { try { System.out.println("何か日本語を入力してください。"); BufferedReader br = new BufferedReader( new InputStreamReader(System.in, "UTF-8")); String str = br.readLine(); System.out.println("文字コードUTF-8に変換した結果"); System.out.println(str); }catch (Exception e) { System.out.println("エラー"); } } } (出力結果) 何か日本語を入力してください。 あいう 文字コードUTF-8に変換した結果 ?????? 以上です。

    • ベストアンサー
    • Java
  • javaの文字コードについて

    いつもお世話になっております。 webで入れられた文字列に全角が含まれるか判定したいのですが、 文字コードについて質問させてください。 javaは標準では、String型は標準ではunicodeだと思うのですが、 これはutf-8なのでしょうか。utf-16なのでしょうか。 試しに以下のように"A"の文字をbyteに変換してみたところ、 String strTest = "A"; byte[] bbb = strTest.getBytes(); for(int i = 0 ; i < bbb.length ; i++){ System.out.println(bbb[i]); } "65"という結果が返ってきました。 http://ash.jp/code/unitbl1.htm 等文字コード表を見ると、"A"は"41"と定義されており、なぜ"65"が返ってくるのでしょうか。 変な質問ですいません。 関係無いと思いますが、ソースはS-JIS、windwos環境で実行しています。 よろしくお願いします。

    • ベストアンサー
    • Java
  • javaでの文字判定

    javaにおいて16進数文字判定はどのようにするのでしょうか? 例えばString文字列が16進数文字0-9,a-f,A-Fで構成されているかどうかを 判定するにはどのようにすれば良いのでしょうか? このString文字列の長さは事前には分からず、数文字かもしれないし 数百文字かもしれません c言語の場合だとchar配列xyz[]があって中身が"1234abc"の場合 isxdigit()を使ってループでisxdigit( xyz[i] )として1文字づつ判定しNUL文字が 出現すれば終了となるわけですがjavaの場合だとどうするのでしょう? Stringの場合、byte[]の場合、char[]の場合それぞれ教えてもらえると助かります。 よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう