您的位置:首页 > 编程语言 > Java开发

java: 一些数字到字符的转换技巧,反射访问类成员数组的方法

2011-12-20 11:34 761 查看
!本文声明:谴责烂代码 !

接下来是正文:

关于反射访问类成员数组的方法:记住java中的数组也是对象,用Field.getObject()就行了。

本文介绍两种转换方式(在for循环里)。

import java.io.IOException;
import java.io.StringWriter;
import java.lang.reflect.Field;

public class Converter {
public static void main(String[] args) throws IOException, IllegalArgumentException,
IllegalAccessException {
NumberSet numSet = new NumberSet();
Field[] fields = NumberSet.class.getDeclaredFields();
for (Field f : fields) {
System.out.println(f.getName() + ":" + f.getType());

if ("class [I".equals(f.getType().toString())) {
int[] is = (int[]) f.get(numSet);
// for (int i : is) {
// System.out.print(i);   //no
// }
StringWriter writer = new StringWriter();
writer.write(numSet.Animals);
writer.flush();
StringBuffer sb = writer.getBuffer();
System.out.print(sb);
writer.close();
} else if ("class [C".equals(f.getType().toString())) {
char[] cs = (char[]) f.get(numSet);
for (char c : cs) {
System.out.print(c);
}
}
System.out.println();

}

StringWriter writer = new StringWriter();
writer.write(numSet.Animals);
writer.flush();
StringBuffer sb = writer.getBuffer();
System.out.println(sb);
writer.close();
}
}

class NumberSet {
int[] lunarInfo = {
0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0,
0x055d2, 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2,
0x095b0, 0x14977, 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60,
0x09570, 0x052f2, 0x04970, 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60,
0x186e3, 0x092e0, 0x1c8d7, 0x0c950, 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4,
0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, 0x06ca0, 0x0b550, 0x15355, 0x04da0,
0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, 0x0aea6, 0x0ab50, 0x04b60,
0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, 0x096d0, 0x04dd5,
0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, 0x095b0,
0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570,
0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x055c0, 0x0ab60, 0x096d5,
0x092e0, 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0,
0x092d0, 0x0cab5, 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0,
0x15176, 0x052b0, 0x0a930, 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6,
0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, 0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0,
0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, 0x0b5a0, 0x056d0, 0x055b2, 0x049b0,
0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, 0x14b63
};

int[] sTermInfo = {
0, 21208, 42457, 63806, 85297, 106944, 128777, 150811, 173019, 195400, 217902, 240498,
263152, 285789, 308393, 330853, 353200, 375364, 397347, 419120, 440735, 462194, 483512,
504758
};

char[] Gan = {
0x7532, 0x4E59, 0x4E19, 0x4E01, 0x620A, 0x5DF1, 0x5E9A, 0x8F9B, 0x58EC, 0x7678
};

char[] tw_Gan = {
0x7532, 0x4E59, 0x4E19, 0x4E01, 0x620A, 0x5DF1, 0x5E9A, 0x8F9B, 0x58EC, 0x7678
};

char[] Zhi = {
0x5B50, 0x4E11, 0x5BC5, 0x536F, 0x8FB0, 0x5DF3, 0x5348, 0x672A, 0x7533, 0x9149, 0x620C,
0x4EA5
};

char[] tw_Zhi = {
0x5B50, 0x4E11, 0x5BC5, 0x536F, 0x8FB0, 0x5DF3, 0x5348, 0x672A, 0x7533, 0x9149, 0x620C,
0x4EA5
};

char[] Animals = {
0x9F20, 0x725B, 0x864E, 0x5154, 0x9F99, 0x86C7, 0x9A6C, 0x7F8A, 0x7334, 0x9E21, 0x72D7,
0x732A
};

char[] tw_Animals = {
0x9F20, 0x725B, 0x864E, 0x5154, 0x9F8D, 0x86C7, 0x99AC, 0x7F8A, 0x7334, 0x96DE, 0x72D7,
0x8C6C
};

char[] solarTerm = {
0x5C0F, 0x5BD2, 0x5927, 0x5BD2, 0x7ACB, 0x6625, 0x96E8, 0x6C34, 0x60CA, 0x86F0, 0x6625,
0x5206, 0x6E05, 0x660E, 0x8C37, 0x96E8, 0x7ACB, 0x590F, 0x5C0F, 0x6EE1, 0x8292, 0x79CD,
0x590F, 0x81F3, 0x5C0F, 0x6691, 0x5927, 0x6691, 0x7ACB, 0x79CB, 0x5904, 0x6691, 0x767D,
0x9732, 0x79CB, 0x5206, 0x5BD2, 0x9732, 0x971C, 0x964D, 0x7ACB, 0x51AC, 0x5C0F, 0x96EA,
0x5927, 0x96EA, 0x51AC, 0x81F3
};

char[] tw_solarTerm = {
0x5C0F, 0x5BD2, 0x5927, 0x5BD2, 0x7ACB, 0x6625, 0x96E8, 0x6C34, 0x9A5A, 0x87C4, 0x6625,
0x5206, 0x6E05, 0x660E, 0x7A40, 0x96E8, 0x7ACB, 0x590F, 0x5C0F, 0x6EFF, 0x8292, 0x7A2E,
0x590F, 0x81F3, 0x5C0F, 0x6691, 0x5927, 0x6691, 0x7ACB, 0x79CB, 0x8655, 0x6691, 0x767D,
0x9732, 0x79CB, 0x5206, 0x5BD2, 0x9732, 0x971C, 0x964D, 0x7ACB, 0x51AC, 0x5C0F, 0x96EA,
0x5927, 0x96EA, 0x51AC, 0x81F3
};

char[] dateStr1 = {
0x6B63, 0x4E00, 0x4E8C, 0x4E09, 0x56DB, 0x4E94, 0x516D, 0x4E03, 0x516B, 0x4E5D, 0x5341,
0x51AC, 0x814A
};

char[] tw_dateStr1 = {
0x6B63, 0x4E00, 0x4E8C, 0x4E09, 0x56DB, 0x4E94, 0x516D, 0x4E03, 0x516B, 0x4E5D, 0x5341,
0x51AC, 0x81D8
};

char[] dateStr2 = {
0x521D, 0x5341, 0x5EFF, 0x5345, 0x25A1
};

char[] tw_dateStr2 = {
0x521D, 0x5341, 0x5EFF, 0x5345, 0x25A1
};

char[] yearMonthDay = {
0x95F0, 0x5E74, 0x6708, 0x0020
};

char[] tw_yearMonthDay = {
0x958F, 0x5E74, 0x6708, 0x0020
};

char[] lFtv = {
0x6625, 0x8282, 0x521D, 0x4E8C, 0x5143, 0x5BB5, 0x7AEF, 0x5348, 0x4E03, 0x5915, 0x4E2D,
0x5143, 0x4E2D, 0x79CB, 0x91CD, 0x9633, 0x814A, 0x516B, 0x5C0F, 0x5E74, 0x9664, 0x5915
};

char[] tw_lFtv = {
0x6625, 0x7BC0, 0x521D, 0x4E8C, 0x5143, 0x5BB5, 0x7AEF, 0x5348, 0x4E03, 0x5915, 0x4E2D,
0x5143, 0x4E2D, 0x79CB, 0x91CD, 0x967D, 0x81D8, 0x516B, 0x5C0F, 0x5E74, 0x9664, 0x5915
};
}


输出结果:

lunarInfo:class [I

鼠牛虎兔龙蛇马羊猴鸡狗猪

sTermInfo:class [I

鼠牛虎兔龙蛇马羊猴鸡狗猪

Gan:class [C

甲乙丙丁戊己庚辛壬癸

tw_Gan:class [C

甲乙丙丁戊己庚辛壬癸

Zhi:class [C

子丑寅卯辰巳午未申酉戌亥

tw_Zhi:class [C

子丑寅卯辰巳午未申酉戌亥

Animals:class [C

鼠牛虎兔龙蛇马羊猴鸡狗猪

tw_Animals:class [C

鼠牛虎兔龍蛇馬羊猴雞狗豬

solarTerm:class [C

小寒大寒立春雨水惊蛰春分清明谷雨立夏小满芒种夏至小暑大暑立秋处暑白露秋分寒露霜降立冬小雪大雪冬至

tw_solarTerm:class [C

小寒大寒立春雨水驚蟄春分清明穀雨立夏小滿芒種夏至小暑大暑立秋處暑白露秋分寒露霜降立冬小雪大雪冬至

dateStr1:class [C

正一二三四五六七八九十冬腊

tw_dateStr1:class [C

正一二三四五六七八九十冬臘

dateStr2:class [C

初十廿卅□

tw_dateStr2:class [C

初十廿卅□

yearMonthDay:class [C

闰年月

tw_yearMonthDay:class [C

閏年月

lFtv:class [C

春节初二元宵端午七夕中元中秋重阳腊八小年除夕

tw_lFtv:class [C

春節初二元宵端午七夕中元中秋重陽臘八小年除夕

鼠牛虎兔龙蛇马羊猴鸡狗猪
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐