1. 程式人生 > 實用技巧 >java 各種型別轉換

java 各種型別轉換

public class TypeConversion {
    public static void main(String[] args) throws ParseException {
        // 1.將字串轉換為字元陣列
        String str = "Manaphy";
        char[] charArray = str.toCharArray();
        System.out.println(Arrays.toString(charArray)); // [M, a, n, a, p, h, y]
        // 2.將字元陣列轉換為字串
        str = new String(charArray);
        System.out.println(str); // Manaphy
        // 3.將字串轉換為byte陣列
        byte[] bytes = str.getBytes(); // 以預設編碼轉換
//		bytes = str.getBytes("GBK"); // 以GBK編碼轉換
        System.out.println(Arrays.toString(bytes)); // [77, 97, 110, 97, 112, 104, 121]
        // 4.將byte陣列轉換為字串
        str = new String(bytes);
        System.out.println(str); // Manaphy
        // 5.把其他型別資料轉換為字串
        int i = 123;
        String txt = "" + i; // 字串與基本型別資料連線
        txt = String.valueOf(i); // 轉換基本資料型別

        // 6.String、int、Integer的互相轉換
        // int轉Integer
        Integer integer1 = new Integer(10);
        Integer integer2 = Integer.valueOf(10); // 官方推薦這種寫法
        Integer integer3 = 10; // 自動裝箱
        // String轉Integer
        Integer integer4 = Integer.valueOf("10");
        // Integer轉int
        int int1 = integer1.intValue();
        int int2 = integer3; // 自動拆箱
        // int轉String
        String str2 = String.valueOf(int1);
        String str3 = Integer.toString(int2);
        // String轉int
        int int3 = Integer.parseInt(str2);
        // Integer轉String
        String str4 = integer1.toString();

        // 7.String轉換成BigDecimal
        BigDecimal bd = new BigDecimal(str2);
        // 8.String轉化成Date
        String strDate = "2019-04-13";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        // 將String轉化為util.Date
        java.util.Date utilDate = sdf.parse(strDate);
        // 將String轉化為sql.Date
        java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

        // 9.List,Set,陣列之間的轉換
        String[] arr = new String[]{"A", "B", "C"};
        // 陣列轉List
        List<String> list = Arrays.asList(arr);//長度固定不變
        List<String> list1 = new ArrayList<>(Arrays.asList(arr));//長度可變
        // List轉Set
        Set<String> set = new HashSet<>(list);
        // Set轉List
        List<String> list2 = new ArrayList<>(set);
        // 陣列轉Set-->利用陣列轉List再轉Set
        Set<String> set1 = new HashSet<>(Arrays.asList(arr));
        // List轉陣列
        Object[] array = list.toArray();
        // Set轉陣列
        Object[] arraySet = set.toArray();

        // 10.Date與LocalDateTime的轉換 (需要使用Instant中轉)
        Date date = new Date();
        // Date轉Instant
        Instant instant = Instant.ofEpochMilli(date.getTime());
        Instant instant1 = date.toInstant();
        // Instant轉Date
        Date date1 = Date.from(instant);

        // Instant轉LocalDateTime
        LocalDateTime localDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
        // LocalDateTime轉Instant
        Instant instant2 = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
    }
}