- String
- String类概述
- String类创建对象的2种方式
- String类常见面试题
- String类常用API-字符串内容比较
- String类常用API-遍历、替换、截取、分割操作
- String案例操作
- ArrayList
- 集合概述
- ArrayList集合快速入门
- ArrayList对于泛型的支持
- ArrayList常用API、遍历
- ArrayList集合案例:遍历并删除元素
- ArrayList集合案例:存储自定义类型的对象
- ArrayList集合案例:元素搜索
package com.itheima.string;
public class StringDemo1 {
public static void main(String[] args) {
String name = "传智";
name += "教育"; // name = name + "教育"
name += "中心";
System.out.println(name);
}
}
传智教育中心
package com.itheima.string;
public class StringDemo2 {
public static void main(String[] args) {
// 方式一:直接使用双引号得到字符串对象
String name = "我爱你中国";
System.out.println(name);
// 方式二:
// 1、public String(): 创建一个空白字符串对象,不含有任何内容 (几乎不用)
String s1 = new String(); // s1 = ""
System.out.println(s1);
// 2、public String(String): 根据传入的字符串内容,来创建字符串对象(几乎不用)
String s2 = new String("我是中国人");
System.out.println(s2);
// 3、public String(char[] c): 根据字符数组的内容,来创建字符串对象
char[] chars = {'a' , 'b' , '中', '国'};
String s3 = new String(chars);
System.out.println(s3);
// 4、public String(byte[] b): 根据字节数组的内容,来创建字符串对象
byte[] bytes = {97, 98, 99, 65, 66, 67};
String s4 = new String(bytes);
System.out.println(s4);
System.out.println("---------------------------------------");
String ss1 = "abc";
String ss2 = "abc";
System.out.println(ss1 == ss2);
char[] chars1 = {'a' , 'b' , 'c'};
String ss3 = new String(chars1);
String ss4 = new String(chars1);
System.out.println(ss3 == ss4);
}
}
我爱你中国 我是中国人 ab中国 abcABC --------------------------------------- true false
package com.itheima.string;
public class StringDemo3 {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "a" + "b" + "c";
System.out.println(s1 == s2);
}
}
package com.itheima.string;
import java.util.Scanner;
public class StringAPIEqualsDemo4 {
public static void main(String[] args) {
// 1、正确登录名和密码
String okName = "itheima";
String okPassword = "123456";
// 2、请您输入登录名称和密码
Scanner sc = new Scanner(System.in);
System.out.println("登录名称:");
String name = sc.next();
System.out.println("登录密码:");
String password = sc.next();
// 3、判断用户输入的登录名称和密码与正确的内容是否相等。
if(okName.equals(name ) && okPassword.equals(password)){
System.out.println("登录成功!");
}else {
System.out.println("用户名或者密码错误了!");
}
// 4、忽略大小写比较内容的Api: 一般用于比较验证码这样的业务逻辑
String sysCode = "23AdFh";
String code1 = "23aDfH";
System.out.println(sysCode.equals(code1)); // false
System.out.println(sysCode.equalsIgnoreCase(code1)); // true
}
}
登录名称: itheima 登录密码: 123456 登录成功! false true
package com.itheima.string;
public class StringAPIOtherDemo5 {
public static void main(String[] args) {
// 1、public int length(): 获取字符串的长度
String name = "我爱你中国love";
System.out.println(name.length());
// 2、public char charAt(int index): 获取某个索引位置处的字符
char c = name.charAt(1);
System.out.println(c);
System.out.println("------------遍历字符串中的每个字符--------------");
for (int i = 0; i < name.length(); i++) {
char ch = name.charAt(i);
System.out.println(ch);
}
// 3、public char[] toCharArray():: 把字符串转换成字符数组
char[] chars = name.toCharArray();
for (int i = 0; i < chars.length; i++) {
char ch = chars[i];
System.out.println(ch);
}
// 4、public String substring(int beginIndex, int endIndex) :截取内容,(包前不包后的)
String name2 = "Java是最厉害的编程语言!";
// 01234567 89
String rs = name2.substring(0, 9);
System.out.println(rs);
String rs1 = name2.substring(4, 9);
System.out.println(rs1);
// 5、public String substring(int beginIndex):从当前索引一直截取到末尾
String rs2 = name2.substring(4);
System.out.println(rs2);
// 6、public String replace(CharSequence target, CharSequence replacement)
String name3 = "金三胖是最厉害的80后,金三胖棒棒的!我好爱金三胖";
String rs3 = name3.replace("金三胖", "***");
System.out.println(rs3);
// 7、public boolean contains(CharSequence s)
System.out.println(name3.contains("金三胖")); // true
System.out.println(name3.contains("金二胖")); // false
// 8、public boolean startsWith(String prefix)
System.out.println(name3.startsWith("金三胖"));
System.out.println(name3.startsWith("金三胖是最厉害的"));
System.out.println(name3.startsWith("金三胖是最厉害的2"));
// 9、public String[] split(String s): 按照某个内容把字符串分割成字符串数组返回。
String name4 = "王宝强,贾乃亮,陈羽凡";
String[] names = name4.split(",");
for (int i = 0; i < names.length; i++) {
System.out.println("选择了:" + names[i]);
}
}
}
9 爱 ------------遍历字符串中的每个字符-------------- 我 爱 你 中 国 l o v e 我 爱 你 中 国 l o v e Java是最厉害的 是最厉害的 是最厉害的编程语言! ***是最厉害的80后,***棒棒的!我好爱*** true false true true false 选择了:王宝强 选择了:贾乃亮 选择了:陈羽凡String案例操作
package com.itheima.string;
import java.util.Random;
public class StringExec6 {
public static void main(String[] args) {
// 1、定义可能出现的字符信息
String datas = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
// 2、循环5次,每次生成一个随机的索引,提取对应的字符连接起来即可
String code = "";
Random r = new Random();
for (int i = 0; i < 5; i++) {
// 随机一个索引
int index = r.nextInt(datas.length());
char c = datas.charAt(index);
code += c;
}
// 3、输出字符串变量即可
System.out.println(code);
}
}
package com.itheima.string;
import java.util.Random;
import java.util.Scanner;
public class StringExec7 {
public static void main(String[] args) {
// 1、定义正确的登录名称和密码
String okLoginName = "admin";
String okPassword = "itheima";
// 2、定义一个循环,循环3次,让用户登录
Scanner sc = new Scanner(System.in);
for (int i = 1; i <= 3; i++) {
System.out.println("请您输入登录名称:");
String loginName = sc.next();
System.out.println("请您输入登录密码:");
String password = sc.next();
// 3、判断登录是否成功!
if(okLoginName.equals(loginName)){
// 4、判断密码是否正确
if(okPassword.equals(password)){
System.out.println("登录成功!欢迎进入系统随意浏览~~~~");
break;
}else {
// 密码错误了
System.out.println("您的密码不正确!您还剩余" + (3 - i) +"次机会登录!");
}
}else {
System.out.println("您的登录名称不正确!您还剩余" + (3 - i) +"次机会登录!");
}
}
}
}
package com.itheima.string;
import java.util.Scanner;
public class StringExec8 {
public static void main(String[] args) {
// 1、键盘录入一个手机号码
Scanner sc = new Scanner(System.in);
System.out.println("请您输入您的手机号码:");
String tel = sc.next();
// 2、截取号码的前三位,后四位 18665666520
String before = tel.substring(0, 3); // 0 1 2
String after = tel.substring(7); // 从索引7开始截取到手机号码的末尾
String s = before + "****" + after;
System.out.println(s);
}
}
ArrayList
集合概述
package com.itheima.arraylist;
import java.util.ArrayList;
public class ArrayListDemo1 {
public static void main(String[] args) {
// 1、创建ArrayList集合的对象
ArrayList list = new ArrayList();
// 2、添加数据
list.add("Java");
list.add("Java");
list.add("MySQL");
list.add("黑马");
list.add(23);
list.add(23.5);
list.add(false);
System.out.println(list.add('中'));
System.out.println(list);
// 3、给指定索引位置插入元素
list.add(1, "赵敏");
System.out.println(list);
}
}
true [Java, Java, MySQL, 黑马, 23, 23.5, false, 中] [Java, 赵敏, Java, MySQL, 黑马, 23, 23.5, false, 中]ArrayList对于泛型的支持
package com.itheima.arraylist;
import java.util.ArrayList;
public class ArrayListDemo2 {
public static void main(String[] args) {
// ArrayList list = new ArrayList();
ArrayList list = new ArrayList<>(); // JDK 1.7开始,泛型后面的类型申明可以不写
list.add("Java");
list.add("MySQL");
// list.add(23);
// list.add(23.5);
ArrayList list2 = new ArrayList<>();
list2.add(23);
list2.add(100);
// list2.add("Java");
}
}
ArrayList常用API、遍历
package com.itheima.arraylist;
import java.util.ArrayList;
public class ArrayListDemo3 {
public static void main(String[] args) {
ArrayList list = new ArrayList<>();
list.add("Java");
list.add("Java");
list.add("MySQL");
list.add("MyBatis");
list.add("HTML");
// 1、public E get(int index):获取某个索引位置处的元素值
String e = list.get(3);
System.out.println(e);
// 2、public int size():获取集合的大小(元素个数)
System.out.println(list.size());
// 3、完成集合的遍历
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
// 4、public E remove(int index):删除某个索引位置处的元素值,并返回被删除的元素值
System.out.println(list); // [Java, Java, MySQL, MyBatis, HTML]
String e2 = list.remove(2);
System.out.println(e2);
System.out.println(list);
// 5、public boolean remove(Object o):直接删除元素值,删除成功返回true,删除失败返回false
System.out.println(list.remove("MyBatis"));
System.out.println(list);
ArrayList list1 = new ArrayList<>();
list1.add("Java");
list1.add("王宝强");
list1.add("Java");
list1.add("MySQL");
System.out.println(list1);
// 只会删除第一次出现的这个元素值,后面的不删除
System.out.println(list1.remove("Java"));
System.out.println(list1);
// 6、public E set(int index,E element):修改某个索引位置处的元素值。
String e3 = list1.set(0 , "贾乃亮");
System.out.println(e3);
System.out.println(list1);
}
}
MyBatis 5 Java Java MySQL MyBatis HTML [Java, Java, MySQL, MyBatis, HTML] MySQL [Java, Java, MyBatis, HTML] true [Java, Java, HTML] [Java, 王宝强, Java, MySQL] true [王宝强, Java, MySQL] 王宝强 [贾乃亮, Java, MySQL]ArrayList集合案例:遍历并删除元素
package com.itheima.arraylist;
import java.util.ArrayList;
public class ArrayListTest4 {
public static void main(String[] args) {
// 1、创建集合对象:存入学生成绩(98,77,66,89,79,50,100)
ArrayList scores = new ArrayList<>();
scores.add(98);
scores.add(77);
scores.add(66);
scores.add(89);
scores.add(79);
scores.add(50);
scores.add(100);
System.out.println(scores);
// [98, 77, 66, 89, 79, 50, 100]
// [98, 66, 89, 50, 100]
// i
// 1、遍历集合中的每个元素
// for (int i = 0; i < scores.size(); i++) {
// int score = scores.get(i);
// // 2、判断这个分数是否低于80分,如果低于则从集合中删除它
// if(score < 80){
// scores.remove(i);
// }
// }
// System.out.println(scores);
// [98, 77, 66, 89, 79, 50, 100]
// [98, 89, 100]
// i
for (int i = scores.size() - 1; i >= 0 ; i--) {
int score = scores.get(i);
// 2、判断这个分数是否低于80分,如果低于则从集合中删除它
if(score < 80){
scores.remove(i);
}
}
System.out.println(scores);
}
}
[98, 77, 66, 89, 79, 50, 100] [98, 89, 100]ArrayList集合案例:存储自定义类型的对象
package com.itheima.arraylist;
public class Movie {
private String name;
private double score;
private String actor;
public Movie() {
}
public Movie(String name, double score, String actor) {
this.name = name;
this.score = score;
this.actor = actor;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public String getActor() {
return actor;
}
public void setActor(String actor) {
this.actor = actor;
}
}
package com.itheima.arraylist;
import java.util.ArrayList;
public class ArrayListTest5{
public static void main(String[] args) {
// 1、定义一个电影类:Movie
// 2、定义一个ArrayList集合存储这些影片对象。
ArrayList movies = new ArrayList<>();
// 3、创建影片对象封装电影数据,把对象加入到集合中去。
// Movie m1 = new Movie("《肖生克的救赎》", 9.7 , "罗宾斯");
// movies.add(m1);
movies.add(new Movie("《肖生克的救赎》", 9.7 , "罗宾斯"));
movies.add(new Movie("《霸王别姬》", 9.6 , "张国荣、张丰毅"));
movies.add(new Movie("《阿甘正传》", 9.5 , "汤姆.汉克斯"));
System.out.println(movies);
// 4、遍历集合中的影片对象并展示出来
for (int i = 0; i < movies.size(); i++) {
Movie movie = movies.get(i);
System.out.println("片名:" + movie.getName());
System.out.println("评分:" + movie.getScore());
System.out.println("主演:" + movie.getActor());
}
}
}
片名:《肖生克的救赎》 评分:9.7 主演:罗宾斯 片名:《霸王别姬》 评分:9.6 主演:张国荣、张丰毅 片名:《阿甘正传》 评分:9.5 主演:汤姆.汉克斯ArrayList集合案例:元素搜索
package com.itheima.arraylist;
import java.util.ArrayList;
import java.util.Scanner;
public class ArrayListTest6 {
public static void main(String[] args) {
// 1、定义一个学生类,后期用于创建对象封装学生数据
// 2、定义一个集合对象用于装学生对象
ArrayList students = new ArrayList<>();
students.add(new Student("20180302","叶孤城",23,"护理一班"));
students.add(new Student("20180303","东方不败",23,"推拿二班"));
students.add(new Student( "20180304","西门吹雪",26,"中药学四班"));
students.add(new Student( "20180305","梅超风",26,"神经科2班"));
System.out.println("学号tt名称t年龄tt班级");
// 3、遍历集合中的每个学生对象并展示其数据
for (int i = 0; i < students.size(); i++) {
Student s = students.get(i);
System.out.println(s.getStudyId() +"tt" + s.getName()+"tt"
+ s.getAge() +"tt" + s.getClassName());
}
// 4、让用户不断的输入学号,可以搜索出该学生对象信息并展示出来(独立成方法)
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请您输入要查询的学生的学号:");
String id = sc.next();
Student s = getStudentByStudyId(students, id);
// 判断学号是否存在
if(s == null){
System.out.println("查无此人!");
}else {
// 找到了该学生对象了,信息如下
System.out.println(s.getStudyId() +"tt" + s.getName()+"tt"
+ s.getAge() +"tt" + s.getClassName());
}
}
}
public static Student getStudentByStudyId(ArrayList students, String studyId){
for (int i = 0; i < students.size(); i++) {
Student s = students.get(i);
if(s.getStudyId().equals(studyId)){
return s;
}
}
return null; // 查无此学号!
}
}
package com.itheima.arraylist;
public class Student {
private String studyId;
private String name;
private int age;
private String className;
public Student() {
}
public Student(String studyId, String name, int age, String className) {
this.studyId = studyId;
this.name = name;
this.age = age;
this.className = className;
}
public String getStudyId() {
return studyId;
}
public void setStudyId(String studyId) {
this.studyId = studyId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
}
学号 名称 年龄 班级 20180302 叶孤城 23 护理一班 20180303 东方不败 23 推拿二班 20180304 西门吹雪 26 中药学四班 20180305 梅超风 26 神经科2班 请您输入要查询的学生的学号: 2018302 查无此人! 请您输入要查询的学生的学号: 20180302 20180302 叶孤城 23 护理一班 请您输入要查询的学生的学号:



