Day19-常用类(二)

String类

常用方法

/**
 * 字符串中的常用方法
 * 
 */
public class TestString1 {
	public static void main(String[] args) {
		String str = "java哈哈嘻嘻哈哈java";
		System.out.println(str);
		System.out.println(str.toString());//返回的是this==>内容文本
		//1、charAt()根据下标获取字符
		System.out.println(str.charAt(0));
		//2、length()返回字符串长度
		System.out.println(str.length());
		//返回最后一个字符
		System.out.println(str.charAt(str.length() - 1));
		//3、contains(String str)判断当前字符串是否包含str
		System.out.println(str.contains("java"));
		//4、char[] toCharArray()将字符串转换成数组
		char[] chars = str.toCharArray();
		System.out.println(chars.length);
		System.out.println(chars[0]);
		//5、intdexOf(String str)找str首次出现的下标,存在,则返回下标,不存在,返回-1
		System.out.println(str.indexOf("哈哈",6));
		//6、lastIndexOf(String str)返回指定字符串在此字符串中最右边出现处的索引
		System.out.println(str.lastIndexOf("哈哈",6));
		
		//打印Java出现的次数及位置
		System.out.println("打印哈哈出现的次数及位置");
		System.out.println(str.indexOf("java",0));//0
		System.out.println(str.indexOf("java",0 + 4));//10
		System.out.println(str.indexOf("java",16 + 4));//-1
		
		
		int count = 0;//次数
		int pos = 0;//下标位置
		//不清楚循环多少次 while
		while ((pos = str.indexOf("哈哈", pos)) >= 0) {
			System.out.println("下标位置:"+pos);//0 10
			count++;
			pos += 4;
		}
		
		
		
		//7、trim()去掉字符串前后的空格
		String str2 = "   Helloworld!    ";
		System.out.println(str2);
		System.out.println(str2.trim());
		//8、toUpperCase()小写转大写
		//toLowerCase()大写转小写
		System.out.println(str.toLowerCase());//全变小写
		System.out.println(str.toUpperCase());//全变大写
		//9、endsWith(String str)判断字符串是否以str结尾
		String filname = "Helloworld.java";
		if (filname.endsWith(".java")) {
			System.out.println("是java文件");
		}else {
			System.out.println("文件格式不正确");
		}
		//startsWith()测试此字符串是否以指定前缀开始
		System.out.println(filname.startsWith("H"));
		//11、replace(char oldChar,char newChar)替换,将旧字符串替换成新字符串
		String str3 = "black";
		System.out.println(str3.replace("ack", "ue"));
		//12、String[] split()根据str做拆分【注意】不能以.拆分处理
		String str4 = "I love u";
		System.out.println(str4);
		String [] strs = str4.split(" ");
		for (String s : strs) {
			System.out.println(s);
		}
		
		//13、subString(int beginIndex,int endIndex)截取,在字符串中截取出一个子字符串
		System.out.println(str.substring(4));//[4,~
		System.out.println(str.substring(4,13));//[4,13) 13 - 4 = 9包前不包后
		
		//14、compareTo(String anotherString)按字典顺序比较两个字符串
		String str5 = "a";//字符个数相同,返回ASCII码的差值
		String str6 = "b";
		System.out.println(str5.compareTo(str6));
		
		String str7 = "aaaa";//字符个数不同,返回两个字符串的长度差值
		String str8 = "aaaa123";
		System.out.println(str7.compareTo(str8));
		
		//14、equals
		String str9 = "aaaa";
		String str10 = "AAAA";
		System.out.println(str9.equals(str10));
		//忽略大小写
		System.out.println(str9.equalsIgnoreCase(str10));
			
	}
}

public class TestString2 {
	public static void main(String[] args) {
		// 练习
		String str = "this is a text";
		// 将str中的单词单独获取出来

		String[] arrs = str.split(" ");
		for (String s : arrs) {
			System.out.println(s);
		}

		// 将str中的text替换为practice
		String str2 = str.replace("texe", "practice");
		System.out.println(str2);
		// 在text前面插入一个easy
		str2 = str.replace("texe", "easy text");
		System.out.println(str2);
		// 将每个单词的首字母改为大写
		for (String string : arrs) {
			char first = string.charAt(0);//this t 
			char upperChar = Character.toUpperCase(first);//T
			String word = upperChar + string.substring(1);
			System.out.println(word);
		}
	}
}

可变字符串

/**
 * 可变的字符序列:执行拼接、插入和删除
 */
public class TestStringBuilder {
	public static void main(String[] args) {
		
		//char[] value = new char[capacity];
		//线程安全,JDK1.0
		//StringBuffer sb = new StringBuffer();
		
		//效率高,安全性低
		StringBuilder sb = new StringBuilder();
		
		
		//四个核心方法
		System.out.println(sb.toString());
		//append()追加
		sb.append("我爱Java,");
		System.out.println(sb.toString());
		sb.append("Java面向对象编程");
		System.out.println(sb.toString());
		//insert插入
		sb.insert(0, "哈哈哈");
		System.out.println(sb.toString());
		//replace替换
		sb.replace(0, 3, "嘻嘻嘻");
		System.out.println(sb.toString());
		//delete删除
		sb.delete(0, 3);
		System.out.println(sb.toString());
		
		
		//特殊方法 reverse反转
		System.out.println(sb.reverse());
	}
}

BigDecimal

import java.math.BigDecimal;
import java.math.RoundingMode;

public class TestBigDecimal {
	public static void main(String[] args) {
		double d1 = 1.0;
		double d2 = 0.9;
		System.out.println(d1 - d2);
		
		
		//BigDecimal:对数字进行准确的存储与计算
		BigDecimal b1 = new BigDecimal("1.0");
		BigDecimal b2 = new BigDecimal("0.9");
		//加法
		BigDecimal result1 = b1.add(b2);
		System.out.println(result1);
		//减法
		BigDecimal result2 = b1.subtract(b2);
		System.out.println(result2);
		
		BigDecimal b3 = new BigDecimal("8");
		BigDecimal b4 = new BigDecimal("2");
		//乘法
		BigDecimal result3 = b3.multiply(b4);
		System.out.println(result3);
		//除法
		BigDecimal result4 = b3.divide(b4);
		System.out.println(result4);
		
		BigDecimal b5 = new BigDecimal("10");
		BigDecimal b6 = new BigDecimal("3");
		//需要指明小数位数和取舍模式
		//BigDecimal result5 = b5.multiply(b6);
		//System.out.println(result5);
		
		//四舍五入模式 保留两位小数
		result1 = b5.divide(b6, 2,BigDecimal.ROUND_UP);
		System.out.println(result1);
		
	}
}

Date

import java.util.Date;

public class TestDate {
	public static void main(String[] args) {
		
		Date date = new Date();
		System.out.println(date);
		System.out.println(date.toLocaleString());
		
		//昨天
		//获取今天的毫秒,减去1天就是昨天
		Date yesterday = new Date(date.getTime() - 24*60*60*1000);
		
		//after:测试此日期是否是指定日期之后
		System.out.println(date.after(yesterday));
		
		//before:测试此日期是否是指定日期之前
		System.out.println(date.before(yesterday));
		
		//compareTo:比较两个日期的顺序
		/*
		 * 如果参数 Date 等于此 Date,则返回值 0;
		 * 如果此 Date 在 Date 参数之前,则返回小于 0 的值;
		 * 如果此 Date 在 Date 参数之后,则返回大于 0 的值。
		*/
		System.out.println(date.compareTo(yesterday));
		System.out.println(yesterday.compareTo(yesterday));
		
		//年、月、日、时、分、秒、星期
		System.out.println(date.getYear());//年,加上1900就是当前年
		System.out.println(date.getMonth());//月,从0开始,如果是7月就显示6
		System.out.println(date.getDate());//日
		System.out.println(date.getHours());//时
		System.out.println(date.getMinutes());//分
		System.out.println(date.getSeconds());//秒
		System.out.println(date.getDay());//星期
	}
}

/**
 * 使用默认时区和语言环境获得一个日历
 */
import java.util.Calendar;
import java.util.Date;

public class TestCalendar {
	public static void main(String[] args) {
		//创建当前日历
		Calendar calendar =Calendar.getInstance();
		System.out.println(calendar);
		//获取日期部分
		System.out.println(calendar.get(Calendar.YEAR));//年
		System.out.println(calendar.get(Calendar.MONTH));//月
		System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//日
		
		//获取时间部分
		System.out.println(calendar.get(Calendar.HOUR));//时 12小时制
		System.out.println(calendar.get(Calendar.HOUR_OF_DAY));//时 24小时制
		System.out.println(calendar.get(Calendar.MINUTE));//分		
		System.out.println(calendar.get(Calendar.SECOND));//秒
		
		//获取前一天
		Calendar yesterday = Calendar.getInstance();
		yesterday.add(Calendar.DAY_OF_MONTH, -1);
		System.out.println(yesterday.get(Calendar.DAY_OF_MONTH));
		
		//before after
		System.out.println(calendar.after(yesterday));
		System.out.println(calendar.before(yesterday));
		
		//获取当月的最大天数和最小天数
		System.out.println(yesterday.getActualMaximum(Calendar.DAY_OF_MONTH));
		System.out.println(yesterday.getActualMinimum(Calendar.DAY_OF_MONTH));
		//获取月份的最大天数和最小天数
		System.out.println(yesterday.getMaximum(Calendar.DAY_OF_MONTH));
		System.out.println(yesterday.getMinimum(Calendar.DAY_OF_MONTH));
		
		//日历转日期
		Date date = calendar.getTime();
		
		//日期转日历
		calendar.setTime(date);
	}
}

SimpleDateFormat

字母 日期或时间
y
M 年中月份
d 月中天数
H 1天中小时数(0~23)
m 分钟
s
S 毫秒

/**
 * SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。
 * 它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
 */
public class TestSimpleDateFormat {
	public static void main(String[] args) throws Exception{
		Date date = new Date();
		System.out.println(date);
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String str = sdf.format(date);
		System.out.println(str);
		
		date = sdf.parse(str);//抛异常
		System.out.println(date);
	}
}

Calendar

/**
 * 使用默认时区和语言环境获得一个日历
 */
import java.util.Calendar;
import java.util.Date;

public class TestCalendar {
	public static void main(String[] args) {
		//创建当前日历
		Calendar calendar =Calendar.getInstance();
		System.out.println(calendar);
		//获取日期部分
		System.out.println(calendar.get(Calendar.YEAR));//年
		System.out.println(calendar.get(Calendar.MONTH));//月
		System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//日
		
		//获取时间部分
		System.out.println(calendar.get(Calendar.HOUR));//时 12小时制
		System.out.println(calendar.get(Calendar.HOUR_OF_DAY));//时 24小时制
		System.out.println(calendar.get(Calendar.MINUTE));//分		
		System.out.println(calendar.get(Calendar.SECOND));//秒
		
		//获取前一天
		Calendar yesterday = Calendar.getInstance();
		yesterday.add(Calendar.DAY_OF_MONTH, -1);
		System.out.println(yesterday.get(Calendar.DAY_OF_MONTH));
		
		//before after
		System.out.println(calendar.after(yesterday));
		System.out.println(calendar.before(yesterday));
		
		//获取当月的最大天数和最小天数
		System.out.println(yesterday.getActualMaximum(Calendar.DAY_OF_MONTH));
		System.out.println(yesterday.getActualMinimum(Calendar.DAY_OF_MONTH));
		//获取月份的最大天数和最小天数
		System.out.println(yesterday.getMaximum(Calendar.DAY_OF_MONTH));
		System.out.println(yesterday.getMinimum(Calendar.DAY_OF_MONTH));
		
		//日历转日期
		Date date = calendar.getTime();
		
		//日期转日历
		calendar.setTime(date);
	}
}

Math

/**
 * Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
 */
import java.math.BigDecimal;
import java.text.DecimalFormat;

public class TestMath {
	public static void main(String[] args) {
		//绝对值
		System.out.println(Math.abs(-8));
		//幂运算
		System.out.println(Math.pow(2, 3));
		//随机数[0~1)
		System.out.println(Math.random());
		//取整 遵循四舍五入
		System.out.println(Math.round(12.4));
		
		//java实现四舍五入方式
		//第一种round
		System.out.println(Math.round(3.1415926*100/100.0));
		//第二种printf
		System.out.printf("%.3f",3.1415926);
		//第三种
		BigDecimal b1 = new BigDecimal("3.1415926");
		BigDecimal b2 = b1.setScale(2, BigDecimal.ROUND_HALF_UP);
		System.out.println(b2);
		//第四种 DecimmalFormat类 数字格式化类 #代表整数值 00代表保留小数位数
		DecimalFormat df = new DecimalFormat("#.00");
		String s = df.format(3.1415926);
		System.out.println(s);
		
		//求平方根
		System.out.println(Math.sqrt(100));
		//求立方根
		System.out.println(Math.cbrt(27));
		//返回小于等于某个数的最大值
		System.out.println(Math.floor(3.9));//3.0
		//返回大于等于某个数的最小值
		System.out.println(Math.ceil(3.1));//4.0
		
		//圆周率 自然对数的底数
		System.out.println(Math.PI);
		System.out.println(Math.E);
		
	}
}

Randon

import java.util.Random;

/**
 * 此类的实例用于生成伪随机数流。此类使用 48 位的种子,使用线性同余公式 对其进行了修改所得
 */
public class TestRandom {
	public static void main(String[] args) {
		//创建一个随机数对象
		Random random = new Random();
		
		System.out.println(random.nextInt());
		System.out.println(random.nextInt(100));//[0~100)
		
		//验证码:Y9a7
		// [A,Z][0,9][a,z][0,9]
		int num1 = random.nextInt(26);
		int num2 = random.nextInt(10);
		int num3 = random.nextInt(26);
		int num4 = random.nextInt(10);
		
		//字符形式输出
		char ch1 = (char)('A' + num1);
		char ch2 = (char)('a' + num3);
		System.out.println("验证码是:"+ch1+num2+ch2+num4);
	}
}

System

/**
 * System系统类,主要用于获取系统的属性数据和其他操作。
 */
public class TestSystem {
	public static void main(String[] args) {
		//1.static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 
        //从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。 
		int [] nums = new int [] {1,2,3,4,5};
		int [] newNums = new int[nums.length*2];
		System.arraycopy(nums, 0, newNums, nums.length, nums.length);
		
		//Arrays.toString();
		System.out.println(newNums);
		System.out.println(Arrays.toString(newNums));
		
		//static long currentTimeMillis()
		long start = System.currentTimeMillis();
		//String str = "";
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < 50000; i++) {
			//str += "A";
			sb.append("A");
		}
		long end = System.currentTimeMillis();
		System.out.println("时间差:"+(end - start));
		
		//gc()运行来及回收器
		System.gc();
		
		//4.static void exit(int status) 
        //终止当前正在运行的 Java 虚拟机。
		System.exit(0);
		System.out.println("程序结束");//已经结束,不执行
	}
}

待整理...

posted @ 2021-07-30 21:18  CN_Darren  阅读(59)  评论(0)    收藏  举报