2021-04-15

一,String练习
–1,测试
package cn.tedu.api;

	import java.util.Arrays;

	//测试 String工具类
	public class Test6 {
		public static void main(String[] args) {
			//1,创建对象
			String s = new String();//触发无参构造
			
			char[] value = {'h','e','l','l','o'} ;
			String s2 = new String(value);//存在堆内存,低效
			
			String s3 = "jack" ;//简写,存在常量池,高效
			s3 = "rose" ;//创建新的字符串
			
			//2,调用方法
	//		char charAt(int index) 
			char a = s2.charAt(0);//根据下标0获取对应的字符h
			System.out.println(a);
	//		String concat(String str) 
			String b = s2.concat("123");//拼接字符串
			System.out.println(b);//hello123
	//		boolean endsWith(String suffix) 
			boolean c = s2.endsWith("lo");//判断s2是否以"lo"结尾
			System.out.println(c);//true
			
			//TODO 调用以下方法
			System.out.println( s2.contains("o") );//判断s2是否包含"o"
			System.out.println( s2.endsWith("o") );//判断s2是以"o"结尾
			System.out.println( s2.equals("hello") );//String重写了equals()
			System.out.println( s2.hashCode() );//获取s2在内存中的哈希码值
			System.out.println( s2.indexOf("l") );//获取s2里"l"第一次出现的索引
			System.out.println( s2.lastIndexOf("l") );//获取s2里"l"最后一次出现的索引
			System.out.println( s2.isEmpty() );//判断s2是否为空
			System.out.println( s2.length() );//获取s2的长度
			System.out.println( s2.replace('l','a') );//把旧字符换成新字符
			System.out.println( s2.startsWith("he") );//判断是否以"he"开始
			System.out.println( s2.substring(2) );//从2索引开始截取子串
			System.out.println( s2.substring(1,3) );//从1索引开始,到3结束截取子串[1,3)-含头不含尾
			System.out.println( s2.toLowerCase() );//全转小写
			System.out.println( s2.toUpperCase() );//全转大写
			s2="  a v c ";
			System.out.println( s2.trim() );//去掉多余空格
			System.out.println( s2.matches("abc") );//判断是否匹配
			String x = String.valueOf(100);//把其他类型转成String类型
			System.out.println(x+1);//1001
			byte[] bs = s2.getBytes();//把每个字符对应的数字,存入 byte[]
			//[32, 32, 97, 32, 118, 32, 99, 32]
			System.out.println(Arrays.toString(bs));
			s2="ab1c1d1";
			String[] ss = s2.split("1");//按照规则切割字符串
			System.out.println(Arrays.toString(ss));//[ab, c, d]
			char[] cs = s2.toCharArray();//把字符串里的每个字符存入char[]
			System.out.println(Arrays.toString(cs));//[a, b, 1, c, 1, d, 1]
			
			//TODO String练习:获取指定字符串里的每个字符
			String m="abcdefghijklmn";
			//方式1:变成char[],再遍历char[]
			char[] n = m.toCharArray();
			for (int i = 0; i < n.length; i++) {
				System.out.println(n[i]);
			}
			//方式2:变成byte[],再遍历byte[]
			byte[] m2 = m.getBytes();
			for (int i = 0; i < m2.length; i++) {
				byte data  = m2[i];
				char n2 = (char)data;//强转,把byte->char
				System.out.println(n2);
			}
			//方式3:直接遍历字符串,获取里面的字符
			for (int i = 0; i < m.length(); i++) {
				char data = m.charAt(i);//根据下标i,获取字符
				System.out.println(data);
			}
			
		}
	}

二,StringBuilder/StringBuffer
–1,概述
专门用来解决 字符串拼接的
–2,创建对象
StringBuilder() – 无参构造
StringBuilder append(String str) – 拼接方法
–3,测试
package cn.tedu.api;
//测试 StringBuilder/StringBuffer
public class Test1 {
public static void main(String[] args) {
// method();//用+拼接
method2();//用StringBuilder拼接
}
//用StringBuilder拼接
public static void method2() {
String s = “abcdefghi” ;
//1,创建对象
StringBuilder sb = new StringBuilder();//无参构造
long start = System.currentTimeMillis();//计时开始ms
for (int i = 0; i < 100000 ; i++) {
//2,用工具拼
sb.append(s);
}
long end = System.currentTimeMillis();//计时结束ms
System.out.println(end-start);//时间差4ms
}
//用+拼接—打印指定字符串拼接10000次的结果
public static void method() {
String s = “abcdefghi” ;
String res = “”; //定义变量,存结果

			long start = System.currentTimeMillis();//计时开始ms
			for (int i = 0; i < 100000 ; i++) {
				res = res + s ;//拼接+
			}
			long end = System.currentTimeMillis();//计时结束ms
			
			System.out.println(end-start);//时间差33849ms
		}
	}

三,日期工具类Date
–1,概述
类 Date 表示特定的瞬间,精确到毫秒。
–2,创建对象
Date()
–3,测试
package cn.tedu.api;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
//测试 Date工具类
//总结:
//1,Date–用来获取时间的年月日 时分秒 毫秒
//2,SimpleDateFormat–用来把String类型的日期 和 Date 类型的日期 互转
//3,规定日期的模式:yyyy-MM-dd
public class Test2 {
public static void main(String[] args) throws Exception {
// method();//Date
method2();//String->Date SimpleDateFormat
}
//算存活天数
public static void method2() throws Exception {
//1,输入的出生日期
String data = new Scanner(System.in).nextLine();
//2,开始算天数
//2.1,创建对象 – SimpleDateFormat(String pattern)
SimpleDateFormat sdf =
new SimpleDateFormat(“yyyy-MM-dd”);
//2.2,Date parse(String text)
Date birthday = sdf.parse(data);//String -> Date
//2.3,算
long start = birthday.getTime();//获取出生时的ms
long now = System.currentTimeMillis();//获取当前时间的ms
System.out.println( (now-start)/1000/60/60/24 );//ms->天
}
//Date
public static void method() {
//1,创建对象 --Date()
Date d = new Date();
//2,调用方法
System.out.println(d.getDate());//今天是几号
System.out.println(d.getDay());//今天礼拜几
System.out.println(d.getHours());//现在几时
System.out.println(d.getMinutes());//现在几分
System.out.println(d.getMonth()+1);//现在几月 0~11
System.out.println(d.getSeconds());//现在几秒
System.out.println(d.getTime());//自1970.1.1零点
System.out.println(d.getYear()+1900);//自1900年算
System.out.println(d.toLocaleString());//2021-4-15 14:50:35
}
}

四,BigDecimal/BigInteger
–1,概述
BigDecimal – 专门解决小数运算不精确的问题
BigInteger – 专门解决超大的整数运算
–2,创建对象
BigDecimal(double val)
BigDecimal(String val)
–3,常用方法
加法:BigDecimal add(BigDecimal augend)
减法:BigDecimal subtract(BigDecimal subtrahend)
乘法:BigDecimal multiply(BigDecimal multiplicand)
除法:BigDecimal divide(BigDecimal divisor)
–4,测试
package cn.tedu.api;

	import java.math.BigDecimal;
	import java.util.Scanner;

	//测试  BigDecimal工具类
	public class Test3 {
		public static void main(String[] args) {
	//		method();//+-*/
			method2();//使用工具
		}
		public static void method2() {
			double a = new Scanner(System.in).nextDouble();
			double b = new Scanner(System.in).nextDouble();
			//1,创建对象-BigDecimal
	//		方式1:BigDecimal(double val) -- 有坑!!!
	//		BigDecimal bd1 = new BigDecimal(a);
	//		BigDecimal bd2 = new BigDecimal(b);
	//		方式2:BigDecimal(String val)  -- 推荐!!!
	//需要把参数,从double->String --- String.valueOf()--- +""
			BigDecimal bd1 = new BigDecimal(String.valueOf(a));
			BigDecimal bd2 = new BigDecimal(b+"");
			//2,调用方法
			BigDecimal bd3 = bd1.add(bd2);//加法
			System.out.println(bd3);
			
			bd3 = bd1.subtract(bd2);//减法
			System.out.println(bd3);
			
			bd3 = bd1.multiply(bd2);//乘法
			System.out.println(bd3);
			
			//除不尽会抛出异常:java.lang.ArithmeticException
	//		bd3 = bd1.divide(bd2);//除法
			//精确divide(1,2,3)-1是要除谁2是小数位数3是舍入模式
			bd3 = bd1.divide(bd2,3,BigDecimal.ROUND_HALF_UP);//除法
			System.out.println(bd3);
		}
		// +-*/
		public static void method() {
			//接受用户输入的两个小数
			double a = new Scanner(System.in).nextDouble();
			double b = new Scanner(System.in).nextDouble();
			//做运算
			System.out.println(a+b);//不精确
			System.out.println(a-b);//不精确
			System.out.println(a*b);//不精确
			System.out.println(a/b);//不精确
		}
	}

五,包装类
–1,概述
包装类 就是为 基本类型 提供丰富的方法
基本类型:byte short int long float double char boolean
包装类型:Byte Short Integer Long Float Double Character Boolean
Byte Short Integer Long Float Double父类是Number
–2,Number:
用来把包装类型 变回成 基本类型的各种方法/intValue()/byteValue()…
–3,Integer
–创建对象:Integer(int value)
–调用方法:intValue()/parseInt(String s)/valueOf(int i)
–4,测试
package cn.tedu.api;
//测试 包装类
public class Test4 {
public static void main(String[] args) {
//1,创建对象 – 把基本类型 变成 包装类型
Integer i = new Integer(5);

			Integer c = Integer.valueOf(5);
			System.out.println(c);
			
			//2,调用方法
			int a = i.intValue();//把包装类型 变成 基本类型
			System.out.println(a);
			
			//static int parseInt(String s) 
			int b = Integer.parseInt("5");//把字符串 转成 基本类型
			System.out.println(b);
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值