1.明确包装类型与基本数据类型的区别。
[java] [引用于红黑联盟]
package com.wrapper;
public class WrapperDemo1 {
public static void main(String[] args) {
/*
* 基本数据类型包装类
*
* 想要对基本类型数据进行更多的操作,因为在对象描述中就可以定义更多的属性和行为对该基本类型数据进行操作。
* 基本数据类型 基本数据类型包装类
* byte Byte
* short Short
* int Integer//这个比较特殊
* long Long
* float Float
* double Double
* char Character//这个比较特殊
* boolean Boolean
* 基本数据类型变为对象的好处:取值范围变大(-2的31方到2的31次方-1)
* 对象包装类的好处:可以将基本数据和字符串之间进行互相转换。
*
* 基本数据类型---》字符串
* 1, 基本数据类型对象包装类中的方法static String toString(基本类型);
* 2, String类中的方法 static String valueof(基本类型);
* 3,基本数据类型+“”
* 重点要掌握:
* 字符串--》基本数据类型。
* 基本数据类型 参数 ,字符串
* 基本类型 parse基本数据类型类名(是基本类型格式的字符串)
* Xxx parseXxx(XxxString)
* long parseLong(longString);
* boolean parseBooean(booleanString);
* 在八个基本类型对象包装类中只有一个对象没有parse方法。就是Character。
*
* 单独讲一下Integer
* 涉及到一个进制转换问题
* 十进制--》其他进制,因为十进制转换成别的别的进制,那么转换后的数字就是一些字符串。
* 二进制:static String toBinaryString(int);
* 十六进制:static String toHexString(int);
* 八进制: static String toOctalString(int);
* 十进制———》其他任意进制:
* Integer.toString(6,3)//将六转换成3进制
* 其他任意进制--》十进制
* int parseInt(intString,radix);
*
*
*
* 基本数据类型值和基本数据对象之间的转换
*
* 基本数据类型值——————》基本类型数据对象
* 使用构造函数,既可以接受基本数值,也可以接受基本数值的字符串。
* 可以使用基本数据对象中的方法。static Integer valueof(int);
*
* 基本类型数据对象——————》基本数据类型值
* int intValue();
*
*/
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
System.out.println("23"+1);//结果是231
System.out.println(Integer.parseInt("23")+1);//结果是24,原因在于先将23这个字符串转化成数字然后再和1互相运算。
System.out.println(Integer.toString(6,3));
System.out.println(Integer.parseInt("110",3));
Integer i = new Integer(34);
int num = i.intValue();
System.out.println(num+1);//35
}
2.适当练习valueOf()、xxxValue()、parseXxx()方法。
valueOf() --> 类的静态方法,返回一个包装类。
xxxValue()--> 用于把包装类转换为基本数据类型。
parseXxx() --> 静态方法,返回基本数据类型。
public class StudyDiary01
{
public static void main(String[] args){
//String --> int
String s = "111";
int i1 = Integer.parseInt(s); //直接使用静态方法,不会产生多余的对象,但会抛出异常
System.out.println("String --> int : i1=" + i1);
int i2 = Integer.valueOf(s).intValue(); //Integer.valueOf(s) 相当于 new Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象
System.out.println("String --> int : i2=" + i2);
int i3 = Integer.parseInt(s,10);//若int i = Integer.parseInt("123",16);即可以看成i = 1*16*16+2*16+3
System.out.println("String --> int : i3=" + i3 + '\n');
//int --> String
int j = 222;
String t1 = String.valueOf(j);//直接使用String类的静态方法,只产生一个对象
System.out.println("int --> String : t1=" + t1);
String t2 = Integer.toString(j); //直接使用静态方法,产生新的对象,会抛出异常
System.out.println("int --> String : t2=" + t2);
String t3 = "" + j; //会产生两个String对象
System.out.println("int --> String : t3=" + t3 + '\n');
//int --> Integer
int m = 333;
Integer n1 = m; //装箱
System.out.println("int --> Integer:n1=" + n1);
Integer n2 = new Integer(n1);
System.out.println("int --> Integer:n2=" + n2);
Integer n3 = Integer.valueOf(n2);
System.out.println("int --> Integer:n3=" + n3 + '\n');
//Integer --> int
Integer x=444;
int y1 = x; //拆箱
System.out.println("Integer --> int:y1=" + y1);
int y2 = x.intValue();
System.out.println("Integer --> int:y2=" + y2);
int y3 = Integer.valueOf(x);
System.out.println("Integer --> int:y3=" + y3 + '\n');
//String --> Integer
String r = "555";
Integer k1 = Integer.valueOf(r); //这种方法常用
System.out.println("String --> Integer:k1=" + k1);
Integer k2 = new Integer(r);
System.out.println("String --> Integer:k2=" + k2);
Integer k3 = Integer.parseInt(r);
System.out.println("String --> Integer:k3=" + k3);
Integer k4 = Integer.parseInt(r,10);
System.out.println("String --> Integer:k4=" + k4 + '\n');
//Integer --> String
Integer l = 666;
String z1 = String.valueOf(l);
System.out.println("Integer -->Stringf:z1=" + z1);
String z2 = l.toString();
System.out.println("Integer -->Stringf:z2=" + z2);
String z3 = "" + l;
System.out.println("Integer -->Stringf:z3=" + z3 + '\n');
}
}
4.通过键盘输入,初始化两个数将这两个数值交换后,输出显示后的数据。
import java.util.Scanner;
public class StudyDiary02
{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("请输入第一个值:");
int a = input.nextInt();
System.out.print("请输入第二个值:");
int b = input.nextInt();
System.out.println("交换之前的两个值为"+a+","+b);
int c;
c = a;
a = b;
b = c;
System.out.println("交换之后的两个值为"+a+","+b);
}
}
5.定义一个五位整数,求各个位上的数的和。
import java.util.Scanner;
public class StudyDiary03
{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("请输入一个五位整数:");
int i = in.nextInt();
int sum = 0;
if (i < 10000 || i > 99999) {
System.out.println("输入有误!");
} else {
for (int j = 0; j < 5 ; j++ ) {
sum += i % 10;
i = i / 10;
}
System.out.println("该五位整数各位数上之和为sum=" + sum );
}
}
}
6.根据天数计算周数和剩余的天数。天数通过键盘输入。
import java.util.Scanner;
public class StudyDiary04
{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.print("请输入要转换的天数:");
int day = in.nextInt();
int week = day / 7;
day = day % 7;
System.out.println("为" + week + "周," + day + "天。");
}
}