Java里的字符与数字

数字转字符

在编程时偶尔会用到字符的编码,做个笔记方便自己查看。。。

Java语言使用Unicode字符集,默认使用UTF-8格式;
因此Java的字符串也使用UTF-8编码;
UTF-8是一种针对Unicode的可变长度字符编码, 用1到4个字节编码Unicode字符,Java语言中的字符串实际上是使用字符型数组char[]存储。
String str = “abc”;
等同于:
char data[] = {‘a’, ‘b’, ‘c’}; String str = new String(data);

char ch1 = 'c';
char ch2 = 99;
char ch3 = 'a'+2;
char ch4 = '\u0063';//0063为16进制数,对应10进制为99

System.out.println(ch1);
System.out.println(ch2);
System.out.println(ch3);
System.out.println(ch4);

//输出结果都是 c

数字0到9的编码是: (十进制)48 ~ 57, (十六进制)0030 ~ 0039
字母A到Z的编码是:(十进制)65 ~ 90, (十六进制)0041 ~ 005a 或 0041 ~ 005A
字母a到z的编码是: (十进制)97 ~ 122,(十六进制)0061 ~ 007a 或 0061 ~ 007A

写了个代码感受感受:

	public static void main(String[] args) {
        char[] ch=new char[80];
        for (int i=0;i<80;i++){
            ch[i]=(char)('0'+i);
        }
        System.out.print("字符:");
        for (char c:ch) {
            System.out.print(c+"\t");
        }

        System.out.print("\n"+"编码:");
        for (char c:ch) {
            System.out.print(Character.hashCode(c)+"\t");
        }

        System.out.print("\n"+"编码:");
        for (char c:ch) {
            System.out.print(Integer.valueOf(c)+"\t");
        }
    }

输出结果:

// 第127貌似乱码了,数出来了,字符没了
字符:0  1	2	3	4	5	6	7	8	9	:	;	<	=	>	?	@	A	B	C	D	E	F	G	H	I	J	K	L	M	N	O	P	Q	R	S	T	U	V	W	X	Y	Z	[	\	]	^	_	`	a	b	c	d	e	f	g	h	i	j	k	l	m	n	o	p	q	r	s	t	u	v	w	x	y	z	{	|	}	~		
编码:48 49	50	51	52	53	54	55	56	57	58	59	60	61	62	63	64	65	66	67	68	69	70	71	72	73	74	75	76	77	78	79	80	81	82	83	84	85	86	87	88	89	90	91	92	93	94	95	96	97	98	99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127	
编码:48 49	50	51	52	53	54	55	56	57	58	59	60	61	62	63	64	65	66	67	68	69	70	71	72	73	74	75	76	77	78	79	80	81	82	83	84	85	86	87	88	89	90	91	92	93	94	95	96	97	98	99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127	

百度,ASCII码表

字符转数字

int value = Integer.valueOf('c');
System.out.println(value);//99

int v = (int)'c';
System.out.println(v);//99

int val=Character.hashCode('c');
System.out.println(val);//99,这是Character的方法,获取当前字符的哈希表码,但结果与上面两个相同

int v1 = '3' - '0';
int v2 = 'd' - 'a';
int v3 = 'Z' - 'W';
System.out.println(v1); //3
System.out.println(v2); //3
System.out.println(v3); //3

int va = 'A' - '0';
System.out.println(va); //17;0的编码是48,A的编码是65,所以相减结果是17.


// 输出结果:
// 99 99 99 3 3 3 17 

数字转字符


char c1 = 97;
char c2 = '\u0063';//0063为16进制数,对应10进制为99

System.out.println(c1);
System.out.println(c2);
// 输出结果:
// a  c 

实例

将字母A到Z,存入一个字符数组中

public static void main(String[] args) {
        char[] ch=new char[26];
        for (int i=0;i<26;i++){
            ch[i]=(char)('A'+i);
        }
    }

输出伏羲六十四卦

package com.guo;
import java.util.ArrayList;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        GetChars();
    }
    public static  void GetChars(){
        {
            List<Character> chars = new ArrayList<Character>();
            int n=0;
            for (int i = 19904; i <= 19967; i++)
            {
                chars.add((char)i);
            }
            /**添加到字符数组的方法
             * char[] chars=new char[64];
             * for (int i = 19904; i <= 19967; i++)
             * {
             *     chars[i-19904]=(char)i;
             * }
             */
            for (Character c : chars) {
                System.out.print(c+"\t");
                n++;
                if(n%8==0) {
                    System.out.println();
                }
            }
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值