Bootstrap

Java基础----常用类

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;
				}
			}
		}
	}
}
;