赞
踩
● Java写好的技术(功能代码),可以直接调用.
● Oracle 也为Java提供了这些功能代码和相关的API文档(技术使用说明书).
http://www.oracle.com/technetwork/java/javase/downloads/index.html
● String类定义的变量可以用于储存字符串,同时String类提供了很多操作字符串的功能,我们可以直接使用.
◣需要知道如何创建字符串对象,并用String定义变量指向该字符串对象.
◣字符串对象在内存中的原理是什么样.能够解决一些字符串的成绩面试题.
◣能够说出并使用String类提供的操作字符串的功能:遍历、替换、截取、相等、包含···
◣能够利用String的常用API去解决实际场景的业务需求,真正做到学以致用
● Java.lang.String 类代表字符串,String类定义的变量可以变量可以用于指向字符串对象,然后操作该字符串.
● Java 查询中的所有字符串文字(例如:“abc”)都为此类的对象
● String起始常被称为不可改变字符串类型,它的对象在创建后不能被更改.
● String变量每次的修改其实都是产生并指向了类的字符串.
● 原来的字符串对象都是没改变的,所以称不可变字符串.
String Word="文字";
构造器 | 说明 |
---|---|
public String() | 创建一个空白字符串对象,不含如何内容 |
public String(String original) | 根据传入的字符内容,来创建字符串对象 |
public String(char[] chs) | 根据字符组的内容,来创建字符串对象 |
public String(byte chs) | 根据字节数组的内容,来创建字符串对象 |
public class StringDemo1 { public static void main(String[] args) { //方式一: 直接使用双引号得到字符串对象 String Word="文字"; System.out.println(Word); //方式二: //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); } }
public class StringDemo1 {
public static void main(String[] args) {
String ss1 = "abc";
String ss2 = "abc";
System.out.println(ss1 == ss2);
char[] char1 = {'a','b','c'};
String ss3 = new String(char1);
String ss4 = new String(char1);
System.out.println(ss3 == ss4);
}
}
方法名 | 说明 |
---|---|
public bool equals (Object anObject) | 将次字符串与指定对象进行比较.只关心内容是否一致 |
public bool equalsIgnoreCase (String anotherString) | 将次字符串与指定对象进行比较.忽略大小写进行比较 |
import java.util.Scanner; public class StringDemo2 { public static void main(String[] args) { //成员变量 String Name = "用户"; String Pwd = "123456"; //接收值 Scanner input = new Scanner(System.in); System.out.print("请输入用户名: "); String name = input.next(); System.out.print("请输入密码: "); String pwd = input.next(); //与成员变量比对接收值 System.out.println("------此处使用的是 '==' 进行的比对-----"); if(name == Name && pwd == Pwd){ System.out.println("正确"); }else { System.out.println("错误"); } System.out.println("------此处使用的是 '.equals(比对值)' 进行的比对-----"); if(name.equals(Name) && pwd.equals(Pwd)){ System.out.println("正确"); }else { System.out.println("错误"); } } }
方法名 | 说明 |
---|---|
public int length() | 返回此字符串的长度 |
public char charAt(int index) | 获取某个索引位置的字符 |
public char[ ] toCharArray() | 将当前字符串转换成为字符数组返回 |
public String substring(int beginIndex, int endIndex) | 根据开始火绒结束索引进行截取,得到新的字符串(包前不包后) |
public String substring(int beginIndex) | 从传入的索引处截取,截取到末尾,得到新的字符串 |
public String replace(charSequence target,charSequence replacement) | 使用新值,将字符串的旧值替换,得到新的字符串 |
public String[ ] split(String regex) | 根据传入的规则切割字符串,得到字符串数组返回 |
public class StringAPIOtherDemo3 { public static void main(String[] args) { //1.public int length(): 获取字符串的长度 String word = "我爱祖国Love"; System.out.println(word.length()); //2.public char charAt(int index): 获取某个索引位置处的字符 char c=word.charAt(4); System.out.println(c); System.out.println("----------遍历字符串中的每个字符--------"); for (int i=0; i<word.length(); i++) { char cr = word.charAt(i); System.out.println(cr); } //3.public char[ ] toCharArray(): 把字符串换成字符数组 char[] ar=word.toCharArray(); System.out.println(); for (int i=0; i<ar.length; i++){ char ch=ar[i]; System.out.println(ch); } //4.public String substring(int beginIndex, int endIndex): 截取内容,包前不包后 String name = "Java是世界最厉害的语言"; String rs1 = name.substring(0,9); System.out.println(rs1); String rs2 = name.substring(5,10); System.out.println(rs2); //5.public String substring(int beginIndex): 从当前索引一直截取到末尾 String rs3 = name.substring(4); System.out.println(rs3); //6.public String replace(charSequence target,charSequence replacement): 比对文字,并替换 String name2 = "张三厉害,张三狂徒."; String rs4 = name2.replace("张三","**"); System.out.println(rs4); //7.public Boolean contains(CharSequence s): 比对当前成员变量中是否存在该变量 System.out.println(name2.contains("张三")); System.out.println(name2.contains("张三")); //8.public Boolean startsWithstand(String prefix): 比对是否为当前成员变量的开头 System.out.println(name.startsWith("张三")); System.out.println(name.startsWith("张三厉害")); System.out.println(name.startsWith("张三棒棒")); //9.public String[ ] split(String s):搜索某个内容把字符串分割成字符串数组返回 String name3 = "张三,李四,王五"; String[] names = name3.split(","); for (int i=0; i<names.length; i++){ System.out.println("选择了:"+names[i]); } } }
import java.util.Random; /* 使用String完成随机5位数的验证码 */ public class StringCode { public static void main(String[] args) { //1.定义可取的字符范围 String verification = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; //2.利用 For 循环5次,每次循环从 verification 变量中随机取走一个字符 Random random=new Random(); String Code=""; for (int i=0; i<5; i++){ //按verification变量的长度随机生成一个数 int index = random.nextInt(verification.length()); //利用public char charAt(int index): 获取某个索引(index)位置处的字符 char c = verification.charAt(index); //将获取到的随机值连起来通过Code接收 Code += c; } System.out.println(Code); } }
import java.util.Scanner; /* 模拟用户登录,3次重新登录机会 */ public class StringLogin { public static void main(String[] args) { //成员变量 String Name = "用户"; String Pwd = "123456"; //接收用户输入信息 Scanner input = new Scanner(System.in); for (int i=0; i<3;i++){ System.out.print("请输入用户名: "); String name=input.next(); System.out.print("请输入密码: "); String pwd=input.next(); if (name.equals(Name)){ if (pwd.equals(Pwd)){ System.out.println("登录成功"); break; }else { System.out.println("密码输入错误,请重新输入.你还有"+(2-i)+"机会"); } }else { System.out.println("用户名错误,请重新输入,你还有"+(2-i)+"机会"); } } } }
import java.util.Scanner;
/* 接收号码,并替换号码 */
public class StringPhone {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入你的电话号码: ");
String Phone=input.next();
String s=Phone.substring(3,9);
String Replace=Phone.replace(s,"******");
System.out.println("你的电话为: "+Replace);
}
}
● ArrayList 代表的是集合类,集合是一种容器,不同的是集合的大小是不固定的.
● 通过ArrayList 的对象代表得到一个集合容器,同时ArrayList 提供了比数组更好用,更丰富的API(功能)给程序员使用.
◣要知道如何利用ArrayList 创建对象代表集合容器来存放数据.
◣能够说出并使用ArrayList 类提供的丰富的元素操作的功能:添加、获取、删除、修改等功能.
◣能够使用ArrayList存储自定义的对象,并清楚ArrayList 集合存储对象的底层原理.
◣能够使用ArrayList 存储对象,并完成数据搜索,删除···创建业务需求.
数组定义完成并启动后,类型确定、长度固定.
数组适合用于数据个数和类型确定的场景
集合类型可以不固定,大小是可变
集合适合数据个数不确定,且要做增删改查元素的场景
ArrayList是集合中的一种,它支持索引.
构造器 | 说明 |
---|---|
public ArrayList() | 创建一个空的集合对象 |
方法名 | 说明 |
---|---|
public Boolean add(E e) | 将指定的元素加到此集合的末尾 |
public void add(int index,E element) | 在此集合的指定位置插入指定的元素 |
import java.util.ArrayList; public class ArrayListDemo1 { public static void main(String[] args) { //1.创建ArrayList集合对象 ArrayList list = new ArrayList(); //2.添加数据 list.add(120); list.add(9.8); list.add("Java"); list.add('中'); list.add("集合中可以添加各种类型的数据"); System.out.println(list); //3.向指定位置添加数据 list.add(1,"hollow"); System.out.println(list); } }
ArrayList: 起始就是一个泛型类,可以在编译阶段约束集合只能操作某种数据类型.
ArrayList: 此集合只能操作整数类型的元素
ArrayList: 此集合只能操作字符串类型的元素
import java.util.ArrayList; /* 目标: 能够使用ArrayList集合操作的数据类型 */ public class ArrayListDemo2 { public static void main(String[] args) { ArrayList<Object> listObject=new ArrayList<>(); //支持所有的类型 listObject.add(120); listObject.add(9.8); listObject.add("Java"); listObject.add('中'); listObject.add("集合中可以添加各种类型的数据"); ArrayList<String> listString1=new ArrayList<String>(); //只支持String类型 ArrayList<String> listString2=new ArrayList<>(); //从JDK 1.7开始,泛型后面的类型声明可以不写 //listString2.add(120); //listString2.add(9.8); listString2.add("Java"); listString2.add("集合中只支持String类型的数据"); ArrayList<Integer> listInteger=new ArrayList<>(); //只支持String类型 listInteger.add(120); //listInteger.add(9.8); //listInteger.add("Java"); } }
方法名称 | 说明 |
---|---|
public E get(int index) | 返回指定索引处的元素 |
public int size() | 返回集合中的元素的个数 |
public E remove(int index) | 删除指定索引处的元素,返回被删除的元素 |
public boolean remove(Object o) | 删除指定的元素,返回删除是否成功 |
public E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素 |
import java.util.ArrayList; public class ArrayListDemo3 { public static void main(String[] args) { ArrayList<String> listString=new ArrayList<>(); listString.add("Java"); listString.add("Java"); listString.add("MySQL"); listString.add("HTML"); listString.add("MyBatis"); //1.public E get(int index): 获取某个索引位置处的元素值 String e = listString.get(3); System.out.println(e); //2.public int size(): 获取集合的大小(元素个数) System.out.println(listString.size()); //3.完成集合的遍历 for (int i=0; i<listString.size(); i++){ System.out.println(listString.get(i)); } /* for (String s : listString) { System.out.println(s); } */ //4.public E remove(int index): 删除指定索引处的元素,返回被删除的元素 System.out.println(listString); String e2 = listString.remove(2); System.out.println(e2); System.out.println(listString); //5.public boolean remove(Object o): 直接删除元素值,删除成功返回true,删除失败返回false listString.remove("Java"); System.out.println(listString); //6.public E set(int index,E element): 修改指定索引处的元素,返回被修改的元素 String e3 = listString.set(2,"MySql"); System.out.println(e3); System.out.println(listString); } }
import java.util.ArrayList; /* 目标:学习遍历删除元素的正确方案 */ public class ArratListDemo4 { public static void main(String[] args) { ArrayList<Integer> listInteger = new ArrayList<>(); listInteger.add(79); listInteger.add(87); listInteger.add(100); listInteger.add(97); listInteger.add(73); listInteger.add(80); System.out.println(listInteger); for (int i=0; i<listInteger.size(); i++){ int score = listInteger.get(i); //将索引值暂时存储在score中 if (score>=80){ System.out.println(score); }else { listInteger.remove(i); i--; //删除成功后,必须退一步,这样可以保证下次回到这个位置,如此不会跳过数据 } } //重后面到这删除就可以 for (int i = listInteger.size()-1; i >=0 ; i--) { int score = listInteger.get(i); if (score>=80){ System.out.println(score); }else { listInteger.remove(i); } } } }
/* 电影类 */ public class Movie { //成员变量 private String File; private double Score; private String Name; //构造 public Movie() { } public Movie(String file, double score, String name) { File = file; Score = score; Name = name; } //封装 public String getFile() { return File; } public void setFile(String file) { File = file; } public double getScore() { return Score; } public void setScore(double score) { Score = score; } public String getName() { return Name; } public void setName(String name) { Name = name; } }
import cn.ObjectOriental.MoviesShow.Movie; import java.util.ArrayList; /* 方法1: 需求:定义电影类(名称、分值、演员),创建三个电影对象,代表影片,插入集合中遍历 "《长津湖》",9.8,"吴京" "《我和我的父辈》",9.6,"吴京" "《扑水少年》",9.5,"王川" */ public class ArrayListDemo5 { public static void main(String[] args) { /*1.定义电影类Movie*/ /*2.创建3个电影对象*/ Movie m1 = new Movie("《长津湖》",9.8,"吴京"); Movie m2 = new Movie("《我和我的父辈》",9.6,"吴京"); Movie m3 = new Movie("《扑水少年》",9.5,"王川"); /*3.创建一个电影对象的ArrayList集合,并存储电影对象*/ ArrayList<Movie> list = new ArrayList<>(); list.add(m1); list.add(m2); list.add(m3); System.out.println(list); //此时list集合中存储的是指向电影对象的地址 /*4.遍历电影类型的集合中的每一个对象.访问它的信息即可*/ for (int i = 0; i < list.size(); i++) { Movie m = list.get(i); //定义对象来接它遍历对象的地址 System.out.println("电影名称: "+m.getFile()); System.out.println("电影评分: "+m.getScore()); System.out.println("电影主演: "+m.getName()); } } }
import cn.ObjectOriental.MoviesShow.Movie; import java.util.ArrayList; /* 方法2:使用匿名对象 需求:定义电影类(名称、分值、演员),创建三个电影对象,代表影片,插入集合中遍历 "《长津湖》",9.8,"吴京" "《我和我的父辈》",9.6,"吴京" "《扑水少年》",9.5,"王川" */ public class ArrayListDemo5 { public static void main(String[] args) { /*1.定义电影类Movie*/ /*2.创建3个电影对象*/ /*3.创建一个电影对象的ArrayList集合,并存储电影对象*/ ArrayList<Movie> list = new ArrayList<>(); list.add(new Movie("《长津湖》",9.8,"吴京");); list.add(new Movie("《我和我的父辈》",9.6,"吴京");); list.add(new Movie("《扑水少年》",9.5,"王川");); System.out.println(list); //此时list集合中存储的是指向电影对象的地址 /*4.遍历电影类型的集合中的每一个对象.访问它的信息即可*/ for (int i = 0; i < list.size(); i++) { Movie m = list.get(i); //定义对象来接它遍历对象的地址 System.out.println("电影名称: "+m.getFile()); System.out.println("电影评分: "+m.getScore()); System.out.println("电影主演: "+m.getName()); } } }
public class Student { private String studyNumber; //学号 private String name; //姓名 private int age; //年龄 private String className; //教室 public Student() { } public Student(String studyNumber, String name, int age, String className) { this.studyNumber = studyNumber; this.name = name; this.age = age; this.className = className; } public String getStudyNumber() { return studyNumber; } public void setStudyNumber(String studyNumber) { this.studyNumber = studyNumber; } 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; } }
import java.util.ArrayList; import java.util.Scanner; /* 案例:学生信息系统,显示数据,并按照学号完成搜索学生类信息 * 测试数据: * "BI035gEYy","一叶孤城",22,"推理一班" * "wqA90HQpU","东方延绪",26,"中医学四班" * "0uzRxJv6o","西门吹雪",24,"法医系三班" * "bUQqiml3Z","东梅超风",21,"精神科五班" * "Uo7Hbykpb","西方不败",27,"修理学二班" */ public class ArrayListStudent { public static void main(String[] args) { //1.创建学生类 //2.创建学生对象封装学生对象 //把学生对象添加到集合中去 ArrayList<Student> liststudent = new ArrayList<>(); liststudent.add(new Student("BI035gEYy","一叶孤城",22,"推理一班" )); liststudent.add(new Student("wqA90HQpU","东方延绪",26,"中医学四班")); liststudent.add(new Student("0uzRxJv6o","西门吹雪",24,"法医系三班")); liststudent.add(new Student("bUQqiml3Z","东梅超风",21,"精神科五班")); liststudent.add(new Student("Uo7Hbykpb","西方不败",27,"修理学二班")); //3.遍历变量集合中的每个信息并打印 System.out.println("学号"+"\t\t\t"+"姓名: "+"\t\t"+"年龄: "+"\t"+"班级: "); for (int i = 0; i < liststudent.size(); i++) { Student s = liststudent.get(i); System.out.println(s.getStudyNumber()+"\t"+s.getName()+"\t\t"+s.getAge()+"\t\t"+s.getClassName()); } //4.定义方法按照学号查询学员信息 Scanner input=new Scanner(System.in); while (true){ System.out.print("请输入学号查询对象: "); String studyNumber = input.next(); //5.调用方法查询 Student s = getStudyId(liststudent,studyNumber); //6.判断s中是否存在学生地址 if(s == null){ System.out.println("对不起,查无此人( ̄▽ ̄)~*"); }else { System.out.println("你查询的学生信息如下:"); System.out.println("学号"+"\t\t\t"+"姓名: "+"\t\t"+"年龄: "+"\t"+"班级: "); System.out.println(s.getStudyNumber()+"\t"+s.getName()+"\t\t"+s.getAge()+"\t\t"+s.getClassName()+"\n"); } } } /* 根据学生的学号查询学生对象返回 * @param students 存储全部学生对象的集合 * @param studyNumber 搜索的学生对象的集合 * @return 学生对象 | null * */ public static Student getStudyId(ArrayList<Student> liststudent,String studyNumber){ //1.遍历全部学生对象 for (int i = 0; i < liststudent.size(); i++) { Student s = liststudent.get(i); //2.询问当前遍历的这个学生的学号:是否我们要找的学号 if(s.getStudyNumber().equals(studyNumber)){ //这个s代表的学生对象,就是我们要找的,返回它 return s; } } //查无此人 return null; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。