Java中String与数组、基本数据类型等的转换

字符串 -->基本数据类型、包装类

Integer包装类的public static int parseInt(String s):可以将由“数字”字符组成的字符串转换为整型。

类似地,使用java.lang包中的Byte、Short、Long、Float、Double类调相应的类方法可以将由“数字”字符组成的字符串,转化为相应的基本数据类型

基本数据类型、包装类 --> 字符串

调用String类的public String valueOf(int n)可将int型转换为字符串相应的valueOf(byte b)、

valueOf(long l)、valueOf(float f)、valueOf(double d)、valueOf(boolean b)可由参数的相应类型到字符串的转换

 @Test
    public void Test(){
        String str = "123";
        int num = Integer.parseInt(str);
        System.out.println(num);//123

        String str1 = String.valueOf(num);
        System.out.println(str1);//"123"

        String str2 = num + "hhh";
        System.out.println(str2);//"123hhh"
    }

字符数组–>字符串

String 类的构造器:String(char[]) 和 String(char[],int offset,intlength) 分别用字符数组中的全部字符和部分字符创建字符串对象。

字符串–>字符数组
1、public char[] toCharArray():将字符串中的全部字符存放在一个字符数组中的方法。

2、public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin):提供了将指

定索引范围内的字符串存放到数组中的方法。

//String 与 char[] 的转换
 @Test
    public void Test1(){
        String str = "hello";
        char[] chars = str.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);//h e l l o

        }

        char[] chars1 = new char[]{'h','e','l','l','o'};
        String s = new String(chars1);
        System.out.println(s);//hello
    }

字节数组–>字符串

1、String(byte[]):通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的String。

2、String(byte[],int offset,int length) :用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象。

字符串–>字节数组

1、public byte[] getBytes() :使用平台的默认字符集将此 String 编码为byte 序列,并将结果存储到一个新的 byte 数组中。

2、public byte[] getBytes(String charsetName) :使用指定的字符集将 此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。

// String 与 byte[] 的转换
@Test
    public void Test2() throws UnsupportedEncodingException {
        String str = "hao123在中国";
        byte[] bytes = str.getBytes();//使用默认字符集进行编码(我的为UTF—8)
        //UTF-8中,汉字占三个字节
        System.out.println(Arrays.toString(bytes));//[104, 97, 111, 49, 50, 51, -27, -100, -88, -28, -72, -83, -27, -101, -67]

        byte[] gbks = str.getBytes("gbk");//使用gbk字符集进行编码
        System.out.println(Arrays.toString(gbks));//[104, 97, 111, 49, 50, 51, -44, -38, -42, -48, -71, -6]);

        String s = new String(bytes);
        System.out.println(s);//hao123在中国	

        String s1 = new String(gbks);
        System.out.println(s1);//乱码,编码集和解码集不一致

        String gbk = new String(gbks, "gbk");
        System.out.println(gbk);//hao123在中国
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值