【Java学习系列】Java高级之实用类介绍(二)

【Java学习系列】Java高级之实用类介绍(二)

Random类

  • 生成随机数的其他方式
    • java.util.Random类
Random rand = new Random();		//创建一个Random对象
for (int i = 0; i < 20; i++) {	//随机生成20个随机整数(生成随机数的个数)
    int num = rand.nextInt(10);	//返回下一个伪随机数,整型的 (生成随机数的范围)
    System.out.println("第" + (i + 1) + "个随机数是:" + num);
}
  • 注意:用同一个种子值来初始化两个Random对象,然后用每个对象调用相同的方法,得到的随机数也是相同的
Random random1 = new Random(100);
System.out.println(random1.nextInt());
System.out.println(random1.nextFloat());
System.out.println(random1.nextBoolean());
Random random2 = new Random(100);
System.out.println(random2.nextInt());
System.out.println(random2.nextFloat());
System.out.println(random2.nextBoolean());
//结果相同

String类

  • 使用String对象存储字符串
String s = "Hello World";
String s = new String();
String s = new String("Hello World");

System.out.println(s);
  • String类位于java.lang包中,具有丰富的方法
    • 计算字符串的长度、比较字符串、连接字符串、提取字符串

length()方法

  • String类提供了length()方法,确定字符串的长度
    • 返回字符串中的字符数

equals()方法

  • String类提供了equals()方法,比较存储在两个字符串对象的内容是否一致
  • equals()方法比较原理
    • 检查组成字符串内容的字符是否完全一致
“==”和equals()的区别
  • ==:判断两个字符串在内存中的地址,即判断是否是同一个字符串对象
  • equals:判断是否相等
字符串比较的其他方法
  • 使用equalsIgnoreCase()忽略大小写
  • 使用toLowerCase()小写
  • 使用toUpperCase()大写

字符串连接

  • 方法1:使用 “+”
  • 方法2:使用String类的**concat()**方法
  String s = "百度:";
  s = s.concat("www.baidu.com");
  System.out.println(s);

字符串常用提取方法

方法名说明
public int indexOf(int ch)搜索第一个出现的字符ch(或字符串value),如果没有找到,返回-1
public int indexOf(String value)
public int lastIndexOf(int ch)搜索最后一个出现的字符ch(或字符串value),如果没有找到,返回-1
public int lastIndexOf(String value)
public String substring(int index)提取从位置索引开始的字符串部分
public String substring(int beginindex, int endindex)提取beginindex(包括值)和endindex(不包括值)之间的字符串部分(一个区间,只是按索引下标走)
public String trim()返回一个前后不含任何空格的调用字符串的副本
split()将一个字符串分割为子字符串,然后将结果作为字符串数组返回。

总例

public class Test01 {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String str = "3321321老13213213师3213122你332132133好com";
        
		//将字符串转换为字节数组
		System.out.println(str.getBytes());
		
		//判断是否是指定字符结尾
		System.out.println(str.endsWith("com"));
		
		//根据指定下标  获得字符
		System.out.println(str.charAt(str.indexOf("老")));
		
		//替换字符串 replaceAll(正则表达式,字符串)
		String repall = str.replaceAll("\\d","");
		//替换字符串   replace(字符串,字符串)
		String rep = str.replace(" ","");
		System.out.println(repall);
		
		//分割字符串   返回数组
		String[] strs = str.split("\\+");
		System.out.println(Arrays.toString(strs));
		
		//去除前后空格
		System.out.println(str.trim());
		
		//截取字符串 substring(包含,不包含)
		String s = str.substring(str.lastIndexOf(".")+1);
		System.out.println(s);
		
		//从右向左    判断指定字符串是否存在  存在返回下标 不存在返回-1
		int lastindex = str.lastIndexOf("Z");
		System.out.println(lastindex);
		//判断指定字符串是否存在  存在返回下标 不存在返回-1
		int index = str.indexOf("Z");
		System.out.println(index);
		
		//反复拼接字符串
		for(int i = 0;i<100;i++){
			str = str.concat(i+"");//字符串拼接
		}
		System.out.println(str);
		
		//将字符串转换为大写
		System.out.println(str.toUpperCase());
		//将字符串转换为小写
		System.out.println(str.toLowerCase());
		//忽略大小写进行比较
		System.out.println(str.equalsIgnoreCase("Wzy"));
		System.out.println(str.toLowerCase().equals("Wzy".toLowerCase()));
		
		//获得字符串长度
		int length = str.length();
		System.out.println(length);
        
		//比较字符串值是否相等
		boolean bool = str.equals("wzy");
		System.out.println(bool);
	}
}

实用类补充

StringBuffer类

  • StringBuffer
    • 对字符串频繁修改(如字符串连接)时,使用StringBuffer类可以大大提高程序执行效率
  • StringBuffer声明
StringBuffer strb = new StringBuffer();
StringBuffer strb = new StringBuffer("aaa");
  • StringBuffer的使用
sb.toString();			//转化为String类型
sb.append("**");		//追加字符串
sb.insert(1,"**");		//插入字符串

String类&StringBuffer类

  • String是不可变对象
    • 经常改变内容的字符串最好不要使用String
    • StringBuffer是可变的字符串
    • 字符串经常改变的情况可使用StringBuffer,更高效
    • JDK5.0后提供了StringBuilder,等价StringBuffer
StringBuilder和StringBuffer的区别
  • StringBuffer里面有线程同步锁,使用更安全,但同时速度变慢
  • StringBuilder里面没有,但速度快

操作日期时间

  • 获取当前日期
    • java.util.Date类:表示日期和时间
      • 提供操作日期和时间各组成部分的方法
    • java.text.SimpleDateFormat类
//创建日期对象
Date date = new Date();
//定制日期格式
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String now = formater.format(date);
System.out.println(now);
  • Calendar类
    • 抽象类,java.util.Calendar
    • 用于设置和获取日期/时间数据的特定部分
//Calender获取各种类型日期时间
public static void main(String[] args) {
		Calendar cd = Calendar.getInstance();	//创建Calendar对象
		System.out.println(cd.get(Calendar.YEAR));	//获取年
		System.out.println(cd.get(Calendar.MONTH) + 1);	//获取月(java时间)
		System.out.println(cd.get(Calendar.DATE));	//获取日
		System.out.println(cd.get(Calendar.HOUR));	//获取小时(12小时制)
		System.out.println(cd.get(Calendar.HOUR_OF_DAY));	//获取小时(24小时制)
		System.out.println(cd.get(Calendar.MINUTE));	//获取分钟
		System.out.println(cd.get(Calendar.SECOND));	//获取秒
		System.out.println(cd.get(Calendar.MILLISECOND));	//获取毫秒
	}
方法或属性说明
int get (int field)返回给定日历字段的值
MONTH指示月
DAY_OF_MONTH指示一个月中的某天
DAY_OF_WEEK指示一个星期中的某天
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tuerlechat,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值