方式一:连接运算
基本数据类型(包括boolean)都可以这么做
int num=10;
String str=num+"";
方式二:调用String重载的valueOf方法(形参是基本数据类型)(返回的是String)
虽然形参是基本数据类型,但由于自动拆箱,包装类对象也可以充当
float f=12.3f;
String str=String.valueOf(f);//12.3
Double d=new Double(12.4);
String str1=String.valueOf(d);
String类型转化成基本数据类型,包装类
调用包装类的parseXxx(String str)方法(比如ParseInt)
String str="123";
//int num=(int)str;不可以这么写,会报错,也不能这么写Integer num=(Integer)str
//强制类型转换要求类型之间存在子父类关系,否则编译不会过
int i=Integer.parseInt(str);//该方法返回的是int类型的值
System.out.println(i+1);//124
String srt1="true";
boolean b=Boolean.parseBoolean(srt1);
System.out.println(b);//true
//如果把str1改成"true1",输出结果就是false
面试题:
Object o1 = true ? new Integer(1) : new Double(2.0);
System.out.println(o1);//1.0,三元运算符前后数据类型相同,Integer会扩展成Double,自动拆箱输出1.0
Object o2;
if (true)
o2 = new Integer(1);
else
o2 = new Double(2.0);
System.out.println(o2);//1,自动拆箱
public void method1() {
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j);//false,因为时new出来的地址不同
Integer m = 1;
Integer n = 1;
System.out.println(m == n);//true,-128~127之间不用new,所以说他俩是相同的。
Integer x = 128;
Integer y = 128;
System.out.println(x == y);//false,大于127,所以x,y都是new出来的。
System.out.println(i);//1,自动拆箱
System.out.println(m);//1,自动拆箱
System.out.println(x);//128,自动拆箱
}
利用Vector代替数组处理:从键盘读入学生成绩(以负数代表输入结束),找出
最高分,并输出学生成绩等级。
提示:数组一旦创建,长度就固定不变,所以在创建数组前就需要知道它的
长度。而向量类java.util.Vector可以根据需要动态伸缩。
创建Vector对象:Vector v=new Vector();
给向量添加元素:v.addElement(Object obj); //obj必须是对象
取出向量中的元素:Object obj=v.elementAt(0);
注意第一个元素的下标是0,返回值是Object类型的。
计算向量的长度:v.size();
若与最高分相差10分内:A等;20分内:B等;
30分内:C等;其它:D等
import java.util.Scanner;
import java.util.Vector;
public class helloworld {
public static void main(String[] args) {
Vector c=new Vector();
Integer n=0;
Integer max=0;
System.out.println("请输入学生成绩:");
System.out.println("提示:若输出为负数则录入结束");
while(n>=0){
Scanner input=new Scanner(System.in);
n=input.nextInt();
if(n>=0&&n<=100) {
c.addElement(n);
}
}
System.out.println(c.size());
for(int i=0;i<c.size();i++) {
if(((int)c.elementAt(i))>max) {
max=(int)c.elementAt(i);
}
System.out.println(c.elementAt(i));
}
System.out.println("最高分为:"+max);
for(int i=0;i<c.size();i++) {
if(max-((int)c.elementAt(i))<=10) {
System.out.println(c.elementAt(i)+"\tA等");
}else if(max-((int)c.elementAt(i))<=20) {
System.out.println(c.elementAt(i)+"\tB等");
}else if(max-((int)c.elementAt(i))<=30) {
System.out.println(c.elementAt(i)+"\tC等");
}else {
System.out.println(c.elementAt(i)+"\tD等");
}
}
}
}