1.枚举
使用enum关键字来修饰是的它成为一个枚举类型
枚举类型中可以自定义一些字符串表示的常量
枚举类型定义的变量只能取它自定义的常量
语法格式
public enum Gender {
male, // 男
femal, // 女
other
}
如果希望在枚举类型定义中加成员属性和成员方法,那么最后一个自定义常量要以分号结尾
public enum Gender {
male, // 男
femal, // 女
other; // 此处枚举以分号结尾
public void showInfo(){ // 成员方法
}
}
2包装类
int —– Integer【特别】
char —– Character【特别】
byte —– Byte
short —– Short
long —– Long
float —– Float
double —— Double
boolean —– Boolean
2.1常用方法
*** Value() 可以将包装类对象再转回成它的对象的基本数据类型
toString() 可以将包装类对象对应的基本数据类型转成字符串
parse ***() 可以将字符串内容解析成包装类对应的基本数据类型(注意要能够被解析)
valueOf() 可以将基本的数据类型的值转换成对应的包装类对象
基本的数据类型和它的包装类直接可以实现自动装换
拆箱和自动装箱:
Integer integer=5;//装箱:基本类型转换为包装类型的对现
int inValue =integer;//拆箱:包装类对象转换为基本类型的值
package baoZhuangLei;
public class Demo1 {
public static void main(String[] args) {
//包装类---》基本类型*****Value();
Integer i= new Integer(9);
int j = i.intValue();
System.out.println(j);
Boolean b = new Boolean(true);
boolean b1 =b.booleanValue();
System.out.println(b1);
//基本类型---》字符串(1)toString() (2) +""
int num = 9;
String strNum=Integer.toString(num);
String strNum2=num+"";
//字符串--》基本类型 parse*****()Character类除外
String s = "89";
int num2= Integer.parseInt(s);
boolean bNum = Boolean.parseBoolean("true");
//valueOf():(1)如何把基本数据类型变成包装类(所有包装类都有这个方法)
Integer iNum = Integer.valueOf(89);
Character cNum = Character.valueOf('z');
Boolean BNum =Boolean.valueOf(true);
//(2)如何把字符串变成包装类(除Character外)
Integer iNum2 =Integer.valueOf("89");
Boolean bNum2 = Boolean.valueOf(true);
//拆箱和自动装箱
Integer integer=5;//装箱:基本类型转换为包装类型的对现
int inValue =integer;//拆箱:包装类对象转换为基本类型的值
}
}
3.Math类的常用属性和方法
Math.E 自然对数底数
Math.PI 圆周率
Math.abs() 求绝对值
Math.max() 求最大值
Math.min() 求最小值
Math.random() 生成随机数
package cn.demo;
public class MathDemo {
/**
* @param args
*/
public static void main(String[] args) {
Math.abs(-3.5);//返回3.5
Math.max(2.5, 5.3);//返回5.3
int random= (int)(Math.random()*10);//生成一个0~9之间的随机数
}
4.Random类可以用来产生随机数
1.种子每次都不一样
2.不同的种子构造的Random对象生成的随机数是不一样
3.相同的种子构造的Random对象生成的随机数都是相同的
Random random=new Random(56);
Random random2=new Random(56);
4.一般放时间毫秒
Random random2=new Random(时间的毫秒);
package cn.Random;
import java.util.Random;
public class RandoDemo {
/**
* @param args
*/
public static void main(String[] args) {
//1.种子 每次都不一样
//2.不同的种子构造的Random对象生成的随机数是不一样的
/**
* 3.相同的种子构造的Random对象生成的随机数都是相同的
* Random random=new Random(56);
* Random random2=new Random(56);
* 4.一般放时间毫秒
* Random random2=new Random(时间的毫秒);
*/
Random random=new Random();//创建一个Random对象
Random random2=new Random();
for (int i = 0; i < 20; i++) {//随机生成20个随机数,并显示
int num= random.nextInt(10);//返回下一个伪随机数,整型的
System.out.println("第"+(i+1)+"个随机数是:"+num);
}
}
}
5.日期类
- Date 类 用户获取系统的日期和时间
- SimpleDateFormat 类 用来格式化日期显示
package cn.date;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateDemo {
/**
* @param args
*/
public static void main(String[] args) {
//当前的日期和时间
Date date=new Date();
System.out.println(date);
//将日期和时间格式化变成我们要求的格式"年-月-日"
SimpleDateFormat formater=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//格式化时间
//用SimpleDateFormat对象的format方法去拿到一个字符串formater.format(date)
//.format(date)参数为Date类返回String
String sdateString=formater.format(date);
System.out.println(sdateString);
}
}
6.日历类
- Calender类是一个抽象类通过静态方法实例化对象
package cn.date;
import java.util.Calendar;
public class CalendarDemo {
public static void main(String[] args) {
//Calendar是抽象类
Calendar t=Calendar.getInstance();
//月加1是因为他的一月是从0开始的
System.out.println(t.get(Calendar.YEAR)+"-"+(t.get(Calendar.MONTH)+1)+"-"+t.get(Calendar.DAY_OF_MONTH));//月里的日
//减去1一周是星期日开始的
System.out.println("今天是星期"+(t.get(Calendar.DAY_OF_WEEK)-1));
}
}
7.String 类的常用方法
length() 求字符串的长度
equals() 用来比较字符串的内容
== 判断的是两个字符串在内存上地址是否相同
equalsIgnoreCase() 忽略大小写比较
toLowerCase() 将字符串内容转成小写
toUpperCase() 将字符串内容转成大写
concat() 拼接字符串
indexOf() 求指定字符第一次出现的位置
lastIndexOf() 求指定字符最后一次出现的位置
substring(int start, int end) 从指定位置截取字符串中的内容[start, end)
trim() 去掉字符串整体前后的空格
split() 按照指定的分隔符将字符串分割成多个字符串并返回一个字符串数组
字符串连接:concat();
package cn.String;
public class Concat {
//字符串连接:concat();
public static void main(String[] args) {
int num=9;
System.out.println("num的值是:"+num);
String s="你好:";
String s2="张三!";
String newString=s.concat(s2);
System.out.println(newString);
}
}
- s.trim()
- toLowerCase() 全变为小写
- toUpperCase() 全变为大写
package cn.String;
public class EqualsDemo {
/**
* @param args
*/
public static void main(String[] args) {
String str1="tom";
String str2="TOM";
System.out.println(str1.equals(str2));//false
//不区分大小写
System.out.println(str1.equalsIgnoreCase(str2));//true
//全变为小写
System.out.println(str1.toLowerCase().equals(str2.toLowerCase()));//true
//全变为大写
System.out.println(str1.toUpperCase().equals(str1.toUpperCase()));//true
String s= " admin ";
System.out.println(s.trim());//输出admin 去掉两端的空格
}
}
字符串拆分的方法split()的几个实例:
package cn.String;
import java.util.Scanner;
//字符串拆分的方法split()
public class StrDemo2 {
public static void main(String[] args) {
//String words="长亭外 古道边 芳草碧连天 晚风 拂柳 笛声残";
// String[] printwords= new String[100];
// System.out.println("原歌词:");
// System.out.println(words);
// printwords=words.split("");
// System.out.println("拆分后:");
// for (String string : printwords) {
// System.out.println(string);
// }
//(1)查出字符串有好几个 自定义的 字符
Scanner inScanner=new Scanner(System.in);
System.out.println("请输入一个带星号的字符串(每个字符用星号隔开)");
String info=inScanner.next();
System.out.println("请输入您要查找的字符:");
String want =inScanner.next();
String[] infos=info.split("*");
int count =0;
for (int i = 0; i < infos.length; i++) {
if(infos[i].equals(want)){
count++;
}
}
System.out.println(want+"在"+info+"中出现的次数"+count);
//(2)
Scanner input=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String info1=input.next();
System.out.println("请输入您要查找的字符:");
String want1 =input.next();
String[] temps= new String[info.length()];
int count1 =0;
for (int i = 0; i < infos.length; i++) {
temps[i]=info1.substring(i,i+1);//info.substring(0,1)
if (temps[i].equals(want)) {//放在数组中对比
count1++;
}
}
System.out.println(want+"在"+info+"中出现的次数"+count1);
}
}
字符串截取:indexOf() lastIndexOf() substring(begin) substring(begin,end)的实几个例
package cn.String;
import java.util.Scanner;
public class StrDemo {
// 字符串截取:indexOf() lastIndexOf() substring(begin) substring(begin,end)
public static void main(String[] args) {
// String s ="hello,my name is yangFan!,ok";//空格也算位置
// System.out.println(s.indexOf("o"));//4
// System.out.println(s.lastIndexOf("o"));//26
//
// System.out.println(s.substring(4));//包含起始位置,到最后
// System.out.println(s.substring(4,5));//包含起始位置,不包含结束位置
// !!!!!String 的所有操作并不影响字符串本身,影响的是字符串的一个副本
String s = "I love you!";
System.out.println(s.substring(2, 6));// love
System.out.println(s);// I love you!
boolean nameFlag = false;
Scanner inScanner = new Scanner(System.in);
System.out.println("****************欢迎提交作业********************");
System.out.println("请输入作业名:");
String name = inScanner.next();
System.out.println("请输入邮箱:");
String email = inScanner.next();
// 检查文件名:必须以.java为后缀
int index = name.indexOf(".");
if (index != -1 && index != 0 && name.substring(index).equals(".java")) {
// 文件名正确
nameFlag = true;
} else {
System.out.println("文件名无效");
}
boolean emailFlag = false;
// 检查邮箱@
int index1 = email.indexOf("@");
int index2 = email.indexOf(".");
if (index1 != -1 && index2 != -1 && index1 < index2) {
emailFlag = true;
} else {
System.out.println("邮箱名无效");
}
if (nameFlag && emailFlag) {
System.out.println("作业提交成功!");
} else {
System.out.println("作业提交失败");
}
}
}
字符串常用方法:length() 注意其于数组的length属性的区别
和用户登陆的小例子:
package cn.String;
import java.util.Scanner;
//字符串常用方法:length() 注意其于数组的length属性的区别
public class Register {
public static void main(String[] args) {
//
// Scanner input= new Scanner(System.in);
// System.out.println("请输入用户名");
// String userName=input.next();
// System.out.println("请输入密码");
// String pwd=input.next();
// if(pwd.length()<6){
// System.out.println("登陆密码不足6位,请重新注册");
//
// }else {
// if(userName.equals("TOM")&&pwd.equals("123123"))
// System.out.println("登陆成功!");
// else {
// System.out.println("用户名或密码错误");
// }
//
// }
//
//equals():比较两个字符串内容是否相等
//(1)equals()于 ==
//String重写了equals()变成了比较字符串内容 ==依然是比较两个字符串是否为同一对象
String s1 = "HELLO";
String s2 = "HELLO";
System.out.println(s1.equals(s2));//true
System.out.println(s1==s2);//true
//(2)创建了几个字符对象?
//2.1
String str = "hello";
String str2 = new String("hello");
System.out.println(str.equals(str2));//true
System.out.println(str==str2);//false
//2.1.2 3个对象
String str3 = "hello";
String str4 = new String("Hello");
System.out.println(str3.equals(str4));//false
System.out.println(str3==str4);//false
//2.1.3 3个对象
String str5 = new String("Hello");
String str6 = new String("Hello");
System.out.println(str5.equals(str6));//true
System.out.println(str5==str6);//false
}
}
8.StringBuffer类是String的增强版本
- 在字符串拼接上,效果要比String高
- toString() 将对象内容转成字符串
- append() 追加和拼接字符串
- insert() 在指定的位置插入指定的符号
注意:StringBuffe是对原有字符串操作而String是不会对自己原有的字符串进行操作的
ackage stringbufferDemo;
import java.util.Scanner;
public class Demo1 {
//对原有字符串操作
public static void main(String[] args) {
/*
//(1)string->stringBuffer
StringBuffer s1=new StringBuffer("hello");
//追加 append
s1.append("world!");
System.out.println(s1);//helloworld!
//插入 insert
s1.insert(1, ",");
System.out.println(s1);//h,elloworld!
System.out.println(s1);
//(2)stringBuffer->string
String s=s1.toString();*/
Scanner inputScanner=new Scanner(System.in);
System.out.println("请输入一串数字");
String num=inputScanner.next();
StringBuffer numsBuffer=new StringBuffer(num);
for (int i = numsBuffer.length();i>0; i=i-3) {
numsBuffer.insert(i, ",");
}
System.out.println(numsBuffer);
}
}