• Java 常用类——String 类与其他类型的转换


    一、String 与基本数据类型转换

      1、字符串 ——> 基本包装类型、包装类

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

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

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

        (1)调用 String 类的 public String valueOf(int n) 可将 int 型转换为字符串;

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

        Demo:

     1     @Test
     2     public void test(){
     3         String str1 = "123";
     4         //int num = (int)str1;//错误的
     5         int num = Integer.parseInt(str1);
     6 
     7         String str2 = String.valueOf(num);//"123"
     8         String str3 = num + "";
     9 
    10         System.out.println(str1 == str3);
    11     }

    二、String 与字符数组转换

      1、字符数组 ——> 字符串

        String 类提供了两个构造器通过字符数组来创建字符串对象。

    String(char[]) :用字符数组中的全部字符创建字符串对象
    String(char[], int offset, int length) :用字符串的部分字符创建字符串对象。
    

      2、字符串——> 字符数组

        String 也提供了方法可以把字符串对象或部分字符放到数组中。

    public char[] toCharArray(): 将字符串中的全部字符存放在一个字符数组中的方法;
    public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin): 提供了将指定索引范围内的字符串存放到数组中的方法。
    

        Demo:

     1 @Test
     2     public void test(){
     3         String str1 = "abc123";  
     4 
     5         char[] charArray = str1.toCharArray();
     6         for (int i = 0; i < charArray.length; i++) {
     7             System.out.print(charArray[i] + " "); // a b c 1 2 3
     8         }
     9         System.out.println();
    10 
    11         char[] chars = new char[5];
    12         str1.getChars(0, 3, chars, 0);
    13         for (char c : chars) {
    14             System.out.print(c + " ");  // a b c
    15         }
    16 
    17         System.out.println();
    18         char[] arr = new char[]{'h','e','l','l','o'};
    19         String str2 = new String(arr);
    20         System.out.println(str2); //hello
    21     }

    三、String 与字节数组转换

      1、字节数组 ——> 字符串

        String 提供了由字节数组为参数的构造方法:

    String(byte[]): 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。
    String(byte[], int offset, int length) : 用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象。
    

       

      2、字符串 ——> 字节数组

        字符串提供了获取字节的方法:

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

       编码与解码:

      编码:String ——> byte[],调用 String 的 getBytes()

      解码:byte[] ——> String:调用 String的构造器

      

      编码过程:字符串 -->字节 (看得懂 --->看不懂的二进制数据)
      解码过程:编码的逆过程,字节 --> 字符串 (看不懂的二进制数据 ---> 看得懂)

      说明:解码时,要求解码使用的字符集必须与编码时使用的字符集一致,否则会出现乱码。

      

      Demo:

     1 @Test
     2     public void test() throws UnsupportedEncodingException {
     3         String str1 = "abc123中国";
     4         byte[] bytes = str1.getBytes();//使用默认的字符集,进行编码。
     5         System.out.println(Arrays.toString(bytes)); // [97, 98, 99, 49, 50, 51, -28, -72, -83, -27, -101, -67]
     6 
     7         byte[] gbks = str1.getBytes("gbk");//使用gbk字符集进行编码。
     8         System.out.println(Arrays.toString(gbks)); //[97, 98, 99, 49, 50, 51, -42, -48, -71, -6]
     9 
    10         System.out.println("******************");
    11 
    12         String str2 = new String(bytes);//使用默认的字符集,进行解码。
    13         System.out.println(str2);   // abc123中国
    14 
    15         String str3 = new String(gbks);
    16         System.out.println(str3);//出现乱码。原因:编码集和解码集不一致!  abc123�й�
    17 
    18 
    19         String str4 = new String(gbks, "gbk");
    20         System.out.println(str4);//没有出现乱码。原因:编码集和解码集一致!  abc123中国
    21 
    22 
    23     }
  • 相关阅读:
    动态网站项目(Dynamic Web Project)CRUD(增删改查)功能的实现(mvc(五层架构)+jdbc+servlet+tomcat7.0+jdk1.8),前端使用JSP+JSTL+EL组合
    动态网站项目(Dynamic Web Project)登录功能的实现(mvc(五层架构)+jdbc+servlet+tomcat7.0+jdk1.8)(js验证+cookie)
    Oracle数据库scott用户无法导入数据的解决方法
    Win10安装Oracle 11g后解决sqldeveloper缺少快捷方式的问题
    【转载】win10系统安装oracle11g详细步骤
    WPF学习笔记(8):DataGrid单元格数字为空时避免验证问题的解决
    WPF学习笔记(7):DataGrid中数字自定义格式显示
    WPF学习笔记(6):DataSet更新后台数据库个别列失败的问题
    WPF学习笔记(5):两个DataGrid的滚动条实现同步滚动
    WPF学习笔记(4):获取DataGridTemplateColumn模板定义的内容控件
  • 原文地址:https://www.cnblogs.com/niujifei/p/14494616.html
Copyright © 2020-2023  润新知