2020-12-15 System类/String类/String类常用方法

System类概述

System表示当前运行的jvm,System提供了标准输入、标准输出和错误输出流对象。
对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法,以及获取系统时间和显示告知垃圾回收器回收垃圾释放内存空间的方法。
System是只读的不能被实例化

public static void exit(int status)
//退出系统
public static void gc()
//通知垃圾回收系统期望快速回收垃圾以释放内存空间
public static long currentTimeMillis()
//通知当前系统时间毫秒表示
public static Properties getProperties()
//获取当前系统属性map集合
public static String getProperty(String key)
//按照给定的名称获取当前系统属性字符串表示

currentTimeMillis方法

		Users [] userList = new Users[100];
		long begin = System.currentTimeMillis();//开始时间
		for (int i = 0; i < userList.length; i++) {
			userList[i] = new Users("用户"+i);
			System.out.println(userList[i].getName());
		}
		long eng = System.currentTimeMillis();//结束时间
		
		System.out.println("存储并输出100个数据用时"+(eng-begin)+"毫秒");

getProperty方法

		//查看当前系统jvm信息
		
		Properties pros = System.getProperties();
		System.out.println(pros.toString());

arraycopy方法拷贝数组

		int []srcs = {0,1,2,3,4,5,6,7,8,9};
		int []dest = new int[srcs.length-2];
		
		System.arraycopy(srcs, 1, dest, 0, dest.length);
		for (int i : dest) {
			System.out.print(i+" ");

获取本地计算机信息

		//利用system获取本地计算机信息
		Map<String,String> maps = System.getenv();
		Set<String> keys = maps.keySet();//获取所有信息名称
		for(String name : keys) {
			System.out.println(name+" = "+maps.get(name));

String类概述

字符串构建方式
public String()
public String(byte[] bytes)
public String(char[] chars)
public String(char[] chars,int offset,int count)
public String(String str)
public String(StringBuffer buffer)

		//字符串构建方式1
		String dec = "中国人";//静态区
		String newDec = new String(dec);
		System.out.println("是否具有相同的字符序列"+(dec.equals(newDec)));
		System.out.println("dec和newdec是否具有同一个引用"+(dec == newDec));
		//字符串构建方式2
		char [] chs = {'2',34,'美','♧'};
		String str = new String(chs);
		System.out.println(str);
		System.out.println("字符串长度"+str.length());

String类常用方法

charAt方法索引字符

		String name =  "列奥纳多.达芬奇";
		//charAt方法,给定的索引不能超出字符串序列索引范围否则出现异常
		char res = name.charAt(2);
		System.out.println(res);

compareTo方法比较字符串大小

		//compareTo方法,如果当前对象大于参数则返回正数,小于返回负数,相等返回0
		String a = "abcdefg";
		String b = "abgdefg";
		System.out.println(a.compareTo(b));

endWith/startsWith方法测试是否以某个字母开头

		//测试是否以某个字符串正则表达式所描述的为开头或结尾的方法
		String email = new String ("abc@163.com");
		System.out.println(email+"是否以.com为结尾的"+(email.endsWith(".com")));

trim方法去掉字符串前后的空格(中间的不会去掉)

		//去掉空格的trim方法
		String srcStr = "    lala   ";
		System.out.println(srcStr.length());
		String newStr = srcStr.trim();
		System.out.println("新字符串"+newStr);
		System.out.println("原字符串"+srcStr);

index方法查找目标字符或字符串方法

		//String 对象的indexOf 查找目标字符或字符串方法
		String email01 = new String("abc@163.com");
		int index = email01.indexOf('@');
		System.out.println("@符号的位置索引"+index);
		System.out.println(email01.indexOf('@',4));
		System.out.println(email01.indexOf(".com"));

split分割字符串方法

		//字符串的分割方法
		String carNames = "奔驰,宝马,奥迪,劳斯莱斯";
		String [] carArray = carNames.split(",");
		System.out.println(carArray.length);
		for (int i = 0; i < carArray.length; i++) {
			System.out.print(carArray[i]);

subString提取字符串方法

		// 提取字符串的substring方法,提取开始位置索引必须不超过原串的范围
		//提取字符串的结束索引位置的字符被忽略(舍弃),结束索引必须不超出原串的范围
		String str2 = new String("我是中国公民");
		System.out.println(str2.substring(3));
		System.out.println(str2.substring(1,5));

tocharArray方法将字符串转换为char型数组

		//将字符串转换为char型数组的tocharArray
		char []chars = "奥迪,奔驰,宝马,劳斯莱斯".toCharArray();
		System.out.println(chars.length == "奥迪,奔驰,宝马,劳斯莱斯".length());
		System.out.println(chars);

转换大小写

		System.out.println("abcdefg".toUpperCase());//转换大写
		System.out.println("ABCDEFG".toLowerCase());//转换大写

contains方法判断字符串是否包含

		//字符串包含方法
		String name2 = "喀秋莎.莉莉";
		System.out.println(name2.contains("."));

replace方法替换字符串

		//字符串替换方法
		String color = "blue";
		System.out.println(color.replace('u', 'l'));
		System.out.println(color.replace("blue", "yellow"));

valueOf静态方法构建字符串

		//静态方法构建字符串对象
		String dest3 = String.valueOf(new Users());
		System.out.println(String.valueOf(new Boolean(true)));

StringBuilder类

StringBuilder和StringBuffer都是可变(自身字符序列可被修改)的 字符序列;
StringBuilder是非线程安全的,StringBuild是线程安全的;
涉及线程安全请款下通常选择StringBuffer;
StringBuilder的执行效率比StringBuffer更高。

		StringBuilder builder = new StringBuilder("我是中国人");
		System.out.println(builder.toString());
		System.out.println("长度"+builder.length());
		System.out.println("默认容量"+builder.capacity());

append方法追加字符串
StringBuild类型的对象通过append方法增加字符串之后,原对象也会改变。

		StringBuilder builder = new StringBuilder("大家好");
		StringBuilder builder2 = builder.append(123).append("king");
		System.out.println(builder2);
		System.out.println(builder);
		System.out.println(builder2 == builder);

delete方法删除字符串

	public static String removeStringFromStartToEnd(String res,int start,int end) {
		StringBuilder builder = new StringBuilder(res);
		builder.delete(start, end);
		return builder.toString();
		String str = StringManagermengt.removeStringFromStartToEnd("sdkj", 1, 3);
		System.out.println(str);

delete方法删除字符

public StringBuilder deleteCharAt(int index)

replace方法替换字符

	public static String replaceTargetFromStartToEnd(String res,String replace) {
		StringBuilder builder = new StringBuilder(res);
		if (builder.toString().contains("=")) {
			builder.replace(builder.indexOf("="), builder.indexOf("=")+1, replace);
			return StringManagermengt.replaceTargetFromStartToEnd(builder.toString(),replace);
		}
		return builder.toString();
		String target = "=========";
		System.out.println(StringManagermengt.replaceTargetFromStartToEnd(target,":"));

insert方法插入字符

		StringBuilder builder = new StringBuilder(res);
		if(builder.toString().contains(tag)) {
			int insertTag  = builder.indexOf(tag)+4;//在此处插入insertObj
			builder.insert(insertTag, inserObj);
			return StringManagermengt.insertObjectOn(builder.toString(), tag, inserObj);
		}
		
		return builder.toString();
		String target = "{name:king,age:,address:rmdj,age:,}";
		Integer intobj = Integer.valueOf(18);
		String str = StringManagermengt.insertObjectOn(target,"age:,",intobj);
		System.out.println(str);

append方法业务场景

IdNameGenderAddressPost
1King1花园街1
2Lucy0中央大路2
3Maik1华尔街1
4Tom1花园路3
5Rose0西斯大街2

可能根据给定的name,gender,address和post进行查询

		StringBuilder sqlBul = new StringBuilder("select * from staff");
		if (args.size() !=0) {
			sqlBul.append("where 1=1 ");
			if (args.containsKey("name")) {
				sqlBul.append("and name = "+args.get("name")+"");
			}if (args.containsKey("post")) {
				sqlBul.append("and post = "+args.get("post")+" ");
			}if (args.containsKey("address")) {
				sqlBul.append("and address = "+args.get("address")+"");
			}if (args.containsKey("gender")) {
				sqlBul.append("and gender = "+args.get("gender")+"");
			}
		}
		
		System.out.println("最终的sql: "+sqlBul.toString());
		Map<String,Object> map = new HashMap<String,Object>();
		map.put("name","King");
		map.put("post", 3);
		map.put("address","'人民大街'  ");
		map.put("gender", 0);
		new StaffDao().findByArgs(map);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值