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

Posted 巧克力爱王子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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在中国
    }

以上是关于Java中String与数组基本数据类型等的转换的主要内容,如果未能解决你的问题,请参考以下文章

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

Java中的日历类/集合类/数学类/正则表达式/数组工具类等的常用方法与基本功能

Java基础(36):String与基本数据类型之间的双向转换

java常用类

java常用类

Java中 String与基本数据类型,包装类,char[],byte[]之间的转换