1.Java四类八种数据类型
byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0
short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0
int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0
long:长整型,在内存中占64位,即8个字节-2^63~2^63-1,默认值0L
float:浮点型,在内存中占32位,即4个字节,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位),默认值0
double:双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节,默认值0
char:字符型,用于存储单个字符,占16位,即2个字节,取值范围0~65535,默认值为空
boolean:布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false),默认值false
2.数据类型的转换
(1)将字符串(String)转化为整型(int)
@Test public void testDataType(){ String str="123"; //将字符串转换为整数 int i = Integer.parseInt(str); System.out.println("i的值为:"+i); }
控制台输出为:
(2)整型(int)转化为字符串(String)
@Test public void testDataType(){ int i=516; //方法1 String str1 = String.valueOf(i); //方法2 String str2 = Integer.toString(i); //方法3:此方法最常用 String str3 = "" + i ; System.out.println("str1的值为:"+str1); System.out.println("str2的值为:"+str2); System.out.println("str3的值为:"+str3); }
控制台输出为:
(3)将字符串(String)转化为double类型
@Test public void testDataType(){ String str="123.890"; //将字符串转换为double double i = Double.parseDouble(str); System.out.println("i的值为:"+i); }
控制台输出:
处理方案:
@Test public void testDataType(){ String str="123.890"; //将字符串转换为double double i = Double.parseDouble(str); i=i+6.110; System.out.println("i的值为:"+i); DecimalFormat df = new DecimalFormat("0.000"); String newStr=df.format(i); System.out.println("i的值为:"+newStr); }
利用DecimalFormat类,帮你用最快的速度将数字格式化为你需要的样子,调用format()方法,注意:这个方法的返回值类型为String
参考用法:
public static void main(String[] args){ double pi=3.1415927;//圆周率 //取一位整数 System.out.println(new DecimalFormat("0").format(pi));//3 //取一位整数和两位小数 System.out.println(new DecimalFormat("0.00").format(pi));//3.14 //取两位整数和三位小数,整数不足部分以0填补。 System.out.println(new DecimalFormat("00.000").format(pi));//03.142 //取所有整数部分 System.out.println(new DecimalFormat("#").format(pi));//3 //以百分比方式计数,并取两位小数 System.out.println(new DecimalFormat("#.##%").format(pi));//314.16% long c=299792458;//光速 //显示为科学计数法,并取五位小数 System.out.println(new DecimalFormat("#.#####E0").format(c));//2.99792E8 //显示为两位整数的科学计数法,并取四位小数 System.out.println(new DecimalFormat("00.####E0").format(c));//29.9792E7 //每三位以逗号进行分隔。 System.out.println(new DecimalFormat(",###").format(c));//299,792,458 //将格式嵌入文本 System.out.println(new DecimalFormat("光速大小为每秒,###米").format(c)); //光速大小为每秒299,792,458米 }
(4)指定日期样式
@Test public void testDataType(){ SimpleDateFormat sf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date now=new Date(); String currentTime=sf.format(now); System.out.println("当前时间为:"+currentTime); }
控制台输出为:
(5)字符串与其它数据类型的转换
<1>其它类型向字符串的转换
①调用类的字符串转换方法:X.toString();
②自动转换:X+“”;
③使用String的方法:String.valueOf(X);
注意:重点掌握第1种和第2种方法。
案例:
@Test public void testDataType(){ ArrayList<String> list=new ArrayList<>(); list.add("linda"); list.add("bob"); list.add("jack"); //注意:利用toString方法将List集合转化为字符串 System.out.println(list.toString()); }
控制台输出为:
注意:集合元素是用中括号[ ]
(6)List转换为数组,数组转List
<1>List转换为数组
@Test public void testDataType(){ ArrayList<String> list=new ArrayList<>(); list.add("linda"); list.add("bob"); list.add("jack"); //List转换为Array String[] strings = new String[list.size()]; list.toArray(strings); //控制台输出数组元素 System.out.println(strings[0]); System.out.println(strings[1]); System.out.println(strings[2]); }
控制台输出:
<2>数组转List
@Test public void testDataType(){ String[] s = {"a","b","c"}; List list = Arrays.asList(s); System.out.println(list.toString()); }
控制台输出:
(7)字符串分隔成数组
@Test public void testStringSplit() { String str="1-2-3"; String[] split = str.split("-"); System.out.println(split[0]); }
控制台输出:
3.java 获取当前时间、年、月、日、时、分、秒
@Test public void testGetYear(){ Calendar now = Calendar.getInstance(); System.out.println("年:"+ now.get(Calendar.YEAR)); System.out.println("月:"+ (now.get(Calendar.MONTH) +1)); System.out.println("日:"+ now.get(Calendar.DAY_OF_MONTH)); System.out.println("时:"+ now.get(Calendar.HOUR_OF_DAY)); System.out.println("分:"+ now.get(Calendar.MINUTE)); System.out.println("秒:"+ now.get(Calendar.SECOND)); Date d =new Date(); SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("当前时间:"+ sdf.format(d)); }
控制台输出:
4.字符串相关操作
(1)转换大小写
@Test public void testChange() { String str = "Din933"; System.out.println("原字符串:" + str); String newA = str.toUpperCase(); System.out.println("大写转换:" + newA); String newB = str.toLowerCase(); System.out.println("小写转换:" + newB); }
效果图: