目录
前言
写了一下算法题,我发现有些类型转换的地方经常出错,为了更加熟悉的掌握这些练习,我总结嘞一下一些类型转换的方法,巩固一下自己的一些知识,同时方便后面的复习。
一、数据类型基础
数据类型分类
分为基本数据类型和引用数据类型,基本数据类型有数值类型(整数类型和浮点类型,整数类型即:byte,short,int,long,浮点类型即:float,double)字符型(char)布尔类型(boolean)引用数据类型有类、接口,枚举(enum)注解(Annotation)
转换顺序
说明:一般情况下,不同的字符之间转换是有一定的顺序的,如果你要从float转换到long,那么你必须就要进行强制转换了,但是进行强制转换会掉精度,结果会有误差
long num=(long)a; //a是一个浮点数
二进制,八进制,十六进制
二进制以0b开头,八进制是以0开头,后面没有字母,十六进制是以0X开头
ASCCI表
二、数据类型转换
1.小数点保留
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
double b=sc.nextInt();
// 保留两位小数
System.out.println(a+"/"+String.format("%.1f",a/b)+"="+(int)b);
}
}
2.整型转化为字符型
int a=134;
// 整数类型转化为字符串类型
String str= Integer.toString(a);
System.out.println(str);
3.字符转化为整型(ASCCI码和数字)
// 字符转为整型
int b=Integer.parseInt(str);
System.out.println(b);
// 字符直接打印为数字
char c='2',d='m';
System.out.println(c+" "+d);
4.字符串与字符数组的相互转化
String str="Eliauk_Duobling";
// 将字符串转化为字符数组
char[] arr1=str.toCharArray();
System.out.println(Arrays.toString(arr1));
// 将字符数组转化为字符数串,转化为部分字符()左闭右开
System.out.println(new String(arr1));
System.out.println(new String(arr1,0,3));
// 字符串转化为字节数组
byte[] arr2=str.getBytes();
System.out.println(Arrays.toString(arr2));
// 字节数组转化为字符串
System.out.println(new String(arr2));
5.不同进制的数字进行转换
// 十进制转化为二进制
String a=Integer.toBinaryString(7);
// 十进制转化为八进制
String c=Integer.toOctalString(9);
// 十进制转化为16进制
String d=Integer.toHexString(18);
6.字符串数字(不同进制)转化为数字(十进制)
String str="1111";
// parseInt默认情况是转化为十进制为十进制的数
int number=Integer.parseInt(str);
System.out.println(number);
// radix表示的是数字字符串当前代表的进制,下面的str当前的进制为2进制
int number1=Integer.parseInt(str,2);
String a=Integer.valueOf(str,2).toString();
System.out.println(number1);
// 转化为double类型
double number2=Double.parseDouble(str);
使用parseInt要注意带点:
str为空串、空,如:parseInt("")
str中包括空格,如:parseInt("23 ")
10进制时,s中包括字符串,如:parseInt(“a32”)
str不以-、+、数字开头、或包含字符串
str超出int允许的范围**[-2147483648,2147483647]**
其他转换基数radix时,超出表示范围
7.字符转化为字符串
// 方法一:字符转为字符串
char a='2';
String str=Character.toString(a);
System.out.println(str);
// 方法二:字符转为字符串
String str1=new String(new char[]{'3'});
System.out.println(str1);
// 方法三:字符转为字符串
String str2=String.valueOf(a);
System.out.println(str2);
8.String雨StringBuffer之间的转化
// String转StringBuffer
StringBuffer sb=new StringBuffer(new String("123"));
sb=sb.reverse();
System.out.println(sb);
// StringBuffer转String
String str=sb.toString();
System.out.println(str+"12");
9.整型进制的相互转换
int n=18;
// 十进制装换成二进制
String s = Integer.toBinaryString(n);
// 十进制转换成八进制
String s1 = Integer.toOctalString(n);
// 十进制装换成十六进制
String s2 = Integer.toHexString(n);
// 二进制装换成十进制
String s3 = Integer.valueOf(s, 2).toString();
// 八进制装换为十进制
String s4 = Integer.valueOf(s1, 8).toString();