常用类
1.String类
1.1 特点
基本特点:String是一个常量,一旦被赋值,其值不能被改变
作为形参的特点:形参的改变不会影响实际参数,效果和基本类作为形式参数一样
1.2 构造方法
- String s = “常量值” (推荐方式)
- String () 空参构造
- String(byte[ ] bytes)
- String(char[ ] chs)
- String(String str)
- String(byte[ ] bytes , int begin ,int length)
1.3 常用方法
获取功能:
- int length() 获取字符串长度
- public String concat (String str) 拼接功能
- public String[ ] split(String str) 通过特点字符串内容将字符串拆分成字符串数组
- char charAt (int index) 获取指定索引处的字符
转换功能:
- public char[ ] tocharArray() 将字符串转换为字符数组
- public byte[ ] getByte() 平台默认编码集,将字符串转换为字节数组
- public static String valueOf(int/double/float…) 可以将任意类型的数据转换为String类型
- public String toUpperCase() 将字符串内容转换为大写
- public String toLowerCase() 转换为小写
判断功能:
- public boolean isEmpty() 判断字符串是否为空
- public boolean equals (String anotherString) 比较字符串的内容是否相同
1.4 常用方法使用
//常用方法用法
public class StringDemo {
public static void main(String[] args) {
//创建对象赋值
String s = new String("我....");
//直接赋值(简单粗暴,推荐使用,空格占一个长度)
String s1 = "爱 你";
char s2 = 'A';
String s3 = "love";
String s4 = "YOU";
String s5 = "";
//字符串长度
System.out.println("字符串长度为:"+s1.length());
//拼接操作
System.out.println(s1.concat("哦!!"));
//切割操作
String[] arr = s1.split(" ");
for(int x = 0;x<arr.length;x++) {
System.out.print(arr[x]);
}
System.out.println();
//获取指定索引出的字符
System.out.println(s1.charAt(1));
//利用length()和charAt(int index)遍历
for(int x = 0;x<s1.length();x++) {
System.out.print(s1.charAt(x));
}
System.out.println();
//将字符串转换为字符数组
char[] chs = s1.toCharArray();
for(int x = 0;x<chs.length;x++) {
System.out.print(chs[x]);
}
System.out.println();
System.out.println(s1.valueOf(s2));
System.out.println(s3.toUpperCase());
System.out.println(s4.toLowerCase());
//判断是否为空,空格非空
System.out.println(s5.isEmpty());
System.out.println(s3.equals("love"));
}
}
2.StringBuffer类
2.1 定义
线程可变的字符序列,提供字符串缓冲区
2.2 构造方法
- StringBuffer()
- StringBuffer(String str)
2.3 常用方法
- public StringBuffer append(任意数据类型)
- public String substring(int beginIndex)
- public String substring(int beginIndex ,int endIndex)
- public StringBuffer deleteCharAt(int index)
2.4 反转功能
通过输入字符串实现反转,主要体现String与StringBuffer之间的相互转换
import java.util.Scanner;
public class StringBufferTest {
public static void main(String[] args) {
//键盘录入字符串进行反转即逆序
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s = sc.nextLine();
//利用有参构造,实现StringBuffer转换为String
StringBuffer sb = new StringBuffer(s);
//方式一:调用StringBuffer特有反转功能reverse()
StringBuffer sb1 = sb.reverse();
//通过toString()方法将StringBuffer转换为String
String s1 = sb1.toString();
System.out.println(s1);
//方式二:链式反应
System.out.println(new StringBuffer(s).reverse().
toString());
}
}
2.5 数组字符串形式遍历
//数组以字符串形式遍历
public class StringArrayTest {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
//方式一:通过String拼接符
System.out.println(method1(arr));
System.out.println(method2(arr));
}
public static String method1(int[] arr) {
String s = "";
s += "[" ;
for(int x = 0;x<arr.length;x++) {
if(x==arr.length-1) {
s += arr[x];
s += "]";
}else {
s += arr[x];
s += ", ";
}
}
return s;
}
public static String method2(int[] arr) {
//方式二:通过StringBuffer拼接符
StringBuffer sb = new StringBuffer();
sb.append("[");
for(int x = 0;x<arr.length;x++) {
if(x==arr.length-1) {
sb.append(arr[x]).append("]");
}else {
sb.append(arr[x]).append(", ");
}
}
return sb.toString();
}
}
3.Calendar类
3.1 简述
Calendar类是一个抽象类,为特定瞬间与一些诸如YEAR,MONTH,DATE等日历字段提供了一些方法
3.2 综合案例
//获取某年二月有多少天
import java.util.Calendar;
import java.util.Scanner;
public class CalendarTest {
public static void main(String[] args) {
//创建Calender对象,通过getInstance()方法,需要导包
Calendar c = Calendar.getInstance();
//键盘录入对象
Scanner sc = new Scanner(System.in);
//提示并接受年份数据
System.out.println("请输入一个年份:");
int year = sc.nextInt();
//set()方法设置年月日
c.set(year,2,1);
//add()方法设置偏移量
c.add(Calendar.DATE,-1);
//get()方法获取天数
System.out.println(year+"年2月有"+c.get(Calendar.DATE)
+"天");
}
}
4.Date类
4.1定义
Date类表示特定的瞬间,精确到毫秒
4.2 Date与String的相互转换
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class DateTest {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的出生年月日:");
//录入字符串
String date = sc.nextLine();
/*
* 调用parse()方法实现字符串转日期
* 创建对象,规范格式,yyyy-MM-dd即为年月日,按照自定义格式
*/
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
Date d = s.parse(date);
//用format()方法实现日期转字符串
String st = s.format(d);
System.out.println(st);
//getTime()方法获输入的时间毫秒值
long oldtime = d.getTime();
//实现当前系统时间的毫秒值获取
long nowtime = System.currentTimeMillis();
//毫秒值时间转换成天数
long day = (nowtime - oldtime)/1000/60/60/24;
System.out.println("恭喜你来到这个世界"+day+"天了");
}
}
5.Random类
5.1 引入
获取随机数两种方式:
- Math类的random()方法: 返回值double类型
- Random类空参构造+nextInt(int n):获取随机数
5.2 方法
5.2.1 构造方法
- public Random() :(推荐),产生的随机数是变化的
- public Random(long seed):每次产生的随机数 是固定的!
5.2.2 成员方法
- public int nextInt():获取的是int范围内的随机数
- public int nextInt(int n):获取0到n之间的随机数[0,n)
5.3方法使用
import java.util.Random;
import java.util.Scanner;
public class GuessNumber {
public static void main(String[] args) {
Random r = new Random();
//获取一到一百之间的随机数
int n = r.nextInt(100)+1;
while(true) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要猜测的数字:");
int g = sc.nextInt();
if(g>n) {
System.out.println("你猜大了");
}else {
if(g<n) {
System.out.println("你猜小了");
}else {
System.out.println("你猜对了");
break;
}
}
}
}
}