アスキーコード表(ascii table)を作成してみよう3
Javaで、複数行にわたる文字列を表示するには TextArea が手軽です。
毎度、管理人イガジーです。
という訳でさっそく、アスキーコード表をTextAreaに表示する例です。
/* output: TextArea
*/
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class asciiT3 {
Frame f=new Frame("ascii Table");
TextArea ta=new TextArea("",40,10,TextArea.SCROLLBARS_NONE);
asciiT3(){
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev) {
System.exit(0);
}
});
ta.setFont(new Font(Font.MONOSPACED,Font.PLAIN,14));
f.add(ta,BorderLayout.CENTER);
f.setSize(340,180);
int a=' ';
ta.append("HEX");
for (int i=0;i<16;++i) ta.append(String.format("+%X", i));
for (int j=0;j<6;++j){
ta.append(String.format("\n%02X:", a));
for (int i=0;i<16;++i){
if (a==0x7F) ta.append(" ");
else ta.append(String.format(" %c", a));
++a;
}
}
ta.append("\n");
f.setVisible(true);
}
public static void main(String[] args) {
new asciiT3();
}
}
System.out.printf() が ta.append(String.format()) に対応しています。
これを動かしてみると、人(OS/フォント)によっては0x5C の文字が
¥ だったり、\ だったりします。
0x7E の文字も、〜 だったり、 ̄ だったりします。
困ったものなのですが、そういうものなのです。
「人(環境)によって見え方が変わる文字がある」という事は知っておきましょう。
さて、次にテキストファイルに出力するには次のようにします。
/* output:text file
*/
import java.io.BufferedWriter;
import java.io.FileWriter;
public class asciiT4 {
asciiT4(){
int a=' ';
FileWriter fw=null;
BufferedWriter bw=null;
try {
fw=new FileWriter("asciitable.txt");
bw=new BufferedWriter(fw);
//
bw.write("HEX");
for (int i=0;i<16;++i) bw.write(String.format("+%X", i));
for (int j=0;j<6;++j){
bw.write(String.format("\n%02X:", a));
for (int i=0;i<16;++i){
if (a==0x7F) bw.write(" ");
else bw.write(String.format(" %c", a));
++a;
}
}
bw.write("\n");
//
}catch(Exception e){
e.printStackTrace();
}finally{
try {
bw.close();
}catch(Exception e2){
e2.printStackTrace();
}
System.out.println("saved.");
}
}
public static void main(String[] args) {
new asciiT4();
}
}
C言語やphpでは、fopen()を使いますが、Java では
FileWriterと、BufferedWriterを使います。
これも、こういうものだと、ひな形をコピペして使えばOKです。
これを流用すれば、htmlファイルに出力するのも簡単ですね。
(htmlを知っていればという前提が必要ですが)
ぜひ、自力で作成してみてください。
この記事へのコメントはこちら