第二天,String的分割花费了一些时间,所以只看了String部分
18周 JAVA从入门到入土
一、String
1.1 char
1° char 与 String
char是字符型,String是字符串,String可以看做是由若干个char拼接成的整体。
char用两个单引号标识,且长度只能为1,如:‘A’,
String用两个双引号标识,长度为length,如:“ABC”。
2° 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° 练习
- 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);
}
}
运行结果:
- 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 + "人。");
}
}
运行结果:
- 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);
}
}
运行结果: