系列文章目录
我在写各种代码提的过程中,发现总是在数据转换上卡住,所以今天来总结一下,顺便复习一下
一、基本字符串,字符,数值转换
1,数字转换
//数字转字符串
int a=2;
String s=a+"";
//数字转字符
int b=2;
char ch=String.valueOf(b).charAt(0);//要先转换为String类型再转字符
2,字符串转换
//字符串转数字
String ss="1234";
int num=Integer.parseInt(ss);
//同理也可调用其他数值方法
double num1=Double.parseDouble(ss);
//字符串转字符
String ss1="1234";
char c=ss1.charAt(0);//使用String的方法获取对应索引的字符
3,字符转换
//字符转换数字
//通过转换为字符串间接转换为数字
//通过acill码与0字符的差值算出数字
char a='1';
int num=a-'0';//1
// 字符转换为字符串
char c='a';
String s=String.valueOf(c);
//字符的大小写转换
char a='a'
char a=(char)(a-32) //结果为A
char A=Character.toUpperCase('a');
char b=Character.toLowerCase('B');
二、Acill码
在算法题中经常出现的是转化字符的大小写,或者将转换字符或者ASCll值,需要记住的是a的ascll值是97,A为65,大小写之间的转换就是加减32,
1,字符相互转换ASCII码
//ASCII码转换为字符
int n=97;
System.out.println((char)n);//通过强制类型转换
//字符转换为ASCII
char a='a';
System.out.println(a-0)
三,进制转换
基本思路就是采用"除以进制数,反向取余数,直到商为0",需要注意的是十六进制超过9就会用A-F代替10-15,小数部分就以上取整,正向输出,其他较为复杂的可去看看很多写的详细的博客。
四,日期转换
在java-8中提供了几个类来封装时间和日期让我们计算,分别是Date类 Calender类,但我们比较常用的是Data类,我列举几个常用的函数
1,Data类
//获取当前系统时间
Date date= new Date();
//接受参数(1970.1.1起的毫秒
Date date1= new Date(24*60*60*1000);1970.1.2
//比较两个Date对象的大小,
2,Calender类
下次待补充
五,BigInteger大数运算
一旦整数范围大于64位就要使用BIgInteger 运算,进行加减乘除运算时,必须是两个BIgInterger向加减,(int 的最大值为 2^31-1)
BigInteger是每次运算都会产生一个新的对象,运算异常会抛出异常
1,算数运算
//算数运算
BigInteger a = new BigInteger("2");
BigInteger b = new BigInteger("3");
//1.加
BigInteger bigNum1 = a.add(b);
//2.减
BigInteger bigNum2 = a.subtract(b);
//3.乘
BigInteger bigNum3 = a.multiply(b);
//4.除
BigInteger bigNum4 = a.divide(b);
//5.取模
BigInteger bigNum5 = a.mod(b);
//6.求余
BigInteger bigNum6 = a.remainder(b);
//7.平方
BigInteger bigNum7 = a.pow(2);
//8.取绝对值
BigInteger bigNum8 = a.abs();
compareTo()返回一个int:1 大于; 0 等于; -1 小于; max(),min():分别返回大的(小的
2,进制转换
BigInteger bigNum = new BigInteger("22");
int radix = 2;
//转换为String
String num2 = bigNum.toString();
//转换为二进制的String
String num3 = bigNum.toString(radix);
总结
后续要继续补充的