一、包装类;
1、包装类是将基本类型封装到一个类中,包含属性和方法,方便对象操作。包装类位于 java.lang包中;
2、基本数据类型转换为包装类:
Integer intValue = new Integer(21);
或Integer intValue = new Integer("21");
Integer intValue = Integer.valueOf("21");
3、包装类转换为基本类型
Integer integerId=new Integer(25);
int intId=integerId.intValue();
4、基本类型和包装类的自动转换(包装类并不是用来取代基本类型的)
Integer intObject = 5;
int intValue = intObject;
二、自动装箱和自动拆箱(auto-boxing&unboxing)
·自动装箱:基本类型就自动地封装到与它相同类型的包中,如:integer i = 100;
-本质上是编译器编译时为我们添加了:integer i = integer.valueOf(100);
·自动拆箱:包装类对象自动转换成基本类型数据,如:int a = new Integer(100);
-本质上是编译器编译时为我们添加了:int a = new Integer(100).intValue();
三、字符串
1、String类位于java.lang包中,具有丰富的方法
2、Java字符串就是Unicode字符序列,例如串“Java”就是四个Unicode字符J,a,v,a组成的
3、Java允许使用符号“+”把两个字符串连接起来:String s1 = "Hello";String s2 = "World";
String s = s1+s2;//HelloWorld
4、String类的常用方式:
>char charAt(int index)//返回字符串中第index个字符;
>boolean equals(String other)//如果字符串相等,返回true;
>boolean equalslgnoreCase(String other)//如果字符串和other相等(忽略大小写),返 回true;
>int indexOf(String str) lastIndexOf(String str,int idx)
>int length()//返回字符串长度
>String replace(char oldChar , char newChar)//返回一个新串,它是通过newChar替换 此字符串中出现的所有oldChar而生成的;
>boolean startsWith(String prefix) //如果字符串以prefix开始,则返回true
public class StringTest3 {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
String s3 = new String("abc");
String s4 = new String("abc");
System.out.println(s1==s2);//true
System.out.println(s1==s3);//false
System.out.println(s3==s4);//false
}
}
import java.util.Scanner;
public class Register {
String name;
String passwork;
String newPasswork;
public void nameShow(){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
System.out.println("请再次输入密码:");
newPasswork = scanner.next();
while (name.length() < 3 || (password.equals(newPasswork)==false) || (password.length()<6)){
if(name.length()<3){
System.out.println("用户名不能小于3");
}else if(password.length()<6||password.equals(newPasswork)==false){
System.out.println("两次输入密码不同!或密码长度不能小于6位!");
}
System.out.println("\n"+"请重新输入:");
System.out.println("请输入用户名:");
name = scanner.next();
System.out.println("请输入密码:");
password = scanner.next();
System.out.println("请再次输入密码:");
newPasswork = scanner.next();
}
System.out.println("注册成功!请牢记用户名和密码!");
}
}
public class Verify extends Register {
public static void main(String[] args) {
Verify verify = new Verify();
verify.nameShow();
}
}
6、字符串连接
方法一:使用“+”;
方法二:使用String类的concat()方法
String s = new String("你好,");
String name = new String("张三!");
String sentence = s.concat(name);
System.out.println(sentence);
上机练习二:
public class Fish {
public static void main(String[] args) {
String word = "Hello,";
word = word.trim();
String str = word.concat("小鱼儿!");
int index1 = str.indexOf(',');
int index2 = str.indexOf('!');
System.out.println(str.substring(6,10));
}
}
上级练习三:
public class Song {
public static void main(String[] args) {
String str = new String("长亭外 古道边 芳草碧连天 晚风扶 柳笛声残 夕阳山外山");
System.out.println("***原歌词格式***");
System.out.println(str);
String [] s = str.split(" ");
System.out.println("***拆分后格式***");
for (int i = 0; i < s.length; i++) {
System.out.println(s[i]);
}
}
}
上机练习四:
import java.util.Scanner;
public class Checking {
public static void main(String[] args) {
int number = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = scanner.next();
System.out.println("请输入需要查找的字符:");
String str1 = scanner.next();
for (int i = 0; i < str.length()-1; i++) {
String str2 = str.substring(i,i+1);
if(str2.equals(str1)){
number++;
}
}
System.out.println(str+"中包含"+number+"个"+str1);
}
}
四、StringBuffer类与StringBuilder类
1、StringBuffer:String增强版,字符串缓冲区,是一个容器;
2、StringBuffer声明:
StringBuffer sb = new StringBuffer();
StringBuffer sb = new StringBuffer("aaa");
3、StringBuffer类:
public class sbAppend {
public static void main(String[ ] args) {
StringBuffer sb = new StringBuffer("青春无悔");
int num=110;
StringBuffer sb1 = sb.append("我心永恒");
System.out.println(sb1);
StringBuffer sb2 = sb1.append('啊');
System.out.println(sb2);
StringBuffer sb3 = sb2.append(num);
System.out.println(sb3);
}
}
4、利用StringBuffer类的length()和insert()方法实现需求;
import java.util.Scanner;
public class Number {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一串数字:");
String number = scanner.next();
StringBuffer str = new StringBuffer(number);
for (int i = str.length()-3; i > 0; i = i-3) {
str.insert(i,",");
}
System.out.println(str);
}
}
上级练习五:
import java.util.Scanner;
public class Goods {
String [] goods = new String[]{"电风扇","洗衣机","电视机","冰箱","空调"};
double [] price = new double[]{124.23,4500,8800.9,5000.88,4456};
public boolean register(){
boolean con = false;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
if(name.equals("tom")&&password.equals("123456")){
System.out.println("登陆成功!");
con = true;
}else{
System.out.println("用户名或密码错误!");
}
return con;
}
public StringBuffer change(double price){
StringBuffer stringBuffer = new StringBuffer(String.valueOf(price));
for (int i = stringBuffer.indexOf(".") - 3; i > 0; i=i-3) {
stringBuffer.insert(i,',');
}
return stringBuffer;
}
public void commodity(){
Scanner scanner = new Scanner(System.in);
System.out.println("***欢迎光临腾讯互联商品批发城***");
System.out.println("\t编号\t商品\t\t价格");
for (int i = 0; i < goods.length; i++) {
System.out.print("\t"+(i+1)+"\t");
System.out.print("\t"+goods[i]+"\t");
System.out.print("\t"+change(price[i])+"\t"+"\n");
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Goods gs = new Goods();
if (gs.register()){
gs.commodity();
System.out.println("请输入您要批发的商品编号:");
int num = scanner.nextInt();
System.out.println("请输入您要批发的数量:");
int number = scanner.nextInt();
double d = gs.price[num-1]*number;
System.out.println("您需要付款:"+gs.change(d));
}
}
}
5、字符串的选用:
五、时间处理相关类
1、Data时间类(java.util.Data)
Data类:表示日期和时间,提供操作日期和时间各组成部分的方法
Date date = new Date(); //创建日期对象
SimpleDateFormat formater = new SimpleDateFormat("yyyyMM-dd HH:mm:ss");//定制日期格式
String now = formater.format(date);
System.out.println(now);
六、Math类
1、包含了常见的数学运算函数。
random()生成[0,1)之间的随机浮点数
七、枚举
public enum EnumDemo {
U1("初级"),U2("中级"),U3("高级");
private String grade;
EnumDemo(String grade){
this.grade = grade;
}
public static void main(String[] args) {
System.out.println(EnumDemo.U1.grade);
System.out.println(EnumDemo.U2.grade);
System.out.println(EnumDemo.U3.grade);
}
}