Day002-2021-07-30 String常用API

第二天,String的分割花费了一些时间,所以只看了String部分

一、String

1.1 char

1° char 与 String

char是字符型,String是字符串,String可以看做是由若干个char拼接成的整体。
char用两个单引号标识,且长度只能为1,如:‘A’,
String用两个双引号标识,长度为length,如:“ABC”。

2° ASCII码

ASCII
每个char对应一个ASCII码表的值,char的大小是通过比较ASCII码值来确定的。

1.2 String 常用 API

1° 常用 API 介绍

API功能输出类型
length()长度int
startsWith(String)以…开始boolean
endsWith(String)以…结束boolean
contains(String)包含boolean
charAt(int)第下标个字符char
toCharArray()转为字符数组char[]
toUpperCase()转大写String
toLowerCase()转小写String
substring(int,int)截取String
split(String)分割String[]

输出全部常用API:

import java.util.Arrays;

public class StringAPI {
	public static void main(String[] args) {
		String str = "abc-DEF-gh-ijk-LMN";
		int length = str.length();
		boolean startsWithA = str.startsWith("a");
		boolean endsWithZ = str.endsWith("z");
		boolean containsC = str.contains("c");
		char charAt2 = str.charAt(2);
		char[] charArr = str.toCharArray();
		String toUpper = str.toUpperCase();
		String toLower = str.toLowerCase();
		String sub = str.substring(4, 7);
		String[] spl = str.split("-");
		System.out.println(length);
		System.out.println(startsWithA);
		System.out.println(endsWithZ);
		System.out.println(containsC);
		System.out.println(charAt2);
		System.out.println(Arrays.toString(charArr));
		System.out.println(toUpper);
		System.out.println(toLower);
		System.out.println(sub);
		System.out.println(Arrays.toString(spl));
	}
}

运行结果:
运行结果

System.out.println(Arrays.toString(array));

这句是调用 Arrays 的 toString() 方法,用于展示一个数组。

2° toCharArray()

将一个字符串拆分为字符数组,并统计数字、大写字母、小写字母的个数:

public class Count {
	public static void main(String[] args) {
		String str = "a46sSi6DG7hv47Fi990nSGvo";
		int countNum = 0;
		int countUpper = 0;
		int countLower = 0;
		for (char ch : str.toCharArray()) {
			if (ch >= '0' && ch <= '9') {
				countNum++;
			} else if (ch >= 'A' && ch <= 'Z') {
				countUpper++;
			} else if (ch >= 'a' && ch <= 'z') {
				countLower++;
			}
		}
		System.out.println("数字个数为:" + countNum);
		System.out.println("大写字母个数为:" + countUpper);
		System.out.println("小写字母个数为:" + countLower);
	}
}

运行结果:
运行结果

3° split()

将一个存有个人信息的字符串数组,提取出25岁以上的人和男人:

public class StringAPI {
	public static void main(String[] args) {
		String[] arr = { "S001-张大炮-25-女", "S002-李狗蛋-43-男", "S003-赵铁柱-25-男", "S004-王建国-17-男" };
		System.out.println("25岁以上的人:");
		for (String str : arr) {
			if (Integer.parseInt(str.split("-")[2]) >= 25) {
				System.out.println(str.split("-")[1]);
			}
		}
		System.out.println("******");
		System.out.println("男性:");
		for (String str : arr) {
			if ("男".equals(str.split("-")[3])) {
				System.out.println(str.split("-")[1]);
			}
		}
	}
}

运行结果:
运行结果

int a = Integer.parseInt("123");

这句是调用 Integer 的 parseInt() 方法,用于将一个纯数字的字符串转化为整型。

4° 练习

  1. String person=“6号-孙壮壮-女-24-销售部”;
    -获取person的年龄 int age。
    -获取person所在部门 String department。
    -判断此人年龄是否大于30 boolean flag。
public class Test1 {
	public static void main(String[] args) {
		String person = "6号-孙壮壮-女-24-销售部";
		int age = Integer.parseInt(person.split("-")[3]);
		System.out.println("岁数为:" + age);
		String department = person.split("-")[4];
		System.out.println("部门为:" + department);
		boolean flag = age > 30;
		System.out.println("是否大于30岁?" + flag);
	}
}

运行结果:
运行结果

  1. String[] arr={“5号|张大炮|女|26|销售部”,“3号|张二狗|男|19|技术部”,“8号|张三疯|女|22|销售部”,“9号|李狗蛋|男|24|技术部”,“12号|王建国|男|35|管理部”};
    -输出所有销售部的同事。
    -输出所有30岁以上的男人。
    -计算技术部有多少人。
public class Test2 {
	public static void main(String[] args) {
		String[] arr = { "5号|张大炮|女|26|销售部", "3号|张二狗|男|19|技术部", "8号|张三疯|女|22|销售部", "9号|李狗蛋|男|24|技术部",
				"12号|王建国|男|35|管理部" };
		System.out.println("全部同事为:");
		for (String employee : arr) {
			System.out.println(employee.split("\\|")[1]);
		}
		System.out.println("******");
		System.out.println("30岁以上的男性有:");
		for (String employee : arr) {
			if (Integer.parseInt(employee.split("\\|")[3]) >= 30 && "男".equals(employee.split("\\|")[2])) {
				System.out.println(employee.split("\\|")[1]);
			}
		}
		System.out.println("******");
		int count = 0;
		for (String employee : arr) {
			if ("技术部".equals(employee.split("\\|")[4])) {
				count++;
			}
		}
		System.out.println("技术部有:" + count + "人。");
	}
}

运行结果:
运行结果

  1. String str=“1号-技术部-陈大壮-1998,2号-销售部-宋二蛋-2005,3号-管理部-孙铁柱-2012” ;
    -输出2号部门的成员。
    -输出2000年以前成立的部门。
    -输出最新成立部门的编号。
public class Test3 {
	public static void main(String[] args) {
		String str = "1号-技术部-陈大壮-2008,2号-销售部-宋二蛋-2018,3号-管理部-孙铁柱-1998";
		for (String member : str.split(",")) {
			if ("2号".equals(member.split("-")[0])) {
				System.out.println("2号部门的成员是:" + member.split("-")[2]);
			}
		}
		System.out.println("******");
		for (String member : str.split(",")) {
			if (Integer.parseInt(member.split("-")[3]) < 2000) {
				System.out.println("2000年以前成立的部门是:" + member.split("-")[1]);
			}
		}
		System.out.println("******");
		int newYear = Integer.parseInt(str.split(",")[0].split("-")[3]);
		String newID = str.split(",")[0].split("-")[0];
		for (String member : str.split(",")) {
			if (Integer.parseInt(member.split("-")[3]) > newYear) {
				newYear = Integer.parseInt(member.split("-")[3]);
				newID = member.split("-")[0];
			}
		}
		System.out.println("最新成立部门的编号是:" + newID);
	}
}

运行结果:
运行结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值