*包是用来分门别类的管理各种不同程序的,类似于文件夹,J建包有利于程序的管理和维护
斜体样式
一、String概述
java.lang.String代表字符串 提供封装字符串数据 处理字符串的方法
*(1)、创建对象 (2)、封装字符串数据 (3)、调String的方法
*package pkg;
import itcask.Demo1;
import itheima.Demo2;
import java.util.Random;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//1、同一个包下的程序,可以直接访问。
Demo d=new Demo();
d.print();
//2、访问其他包下的程序,必须导包才可以访问
Demo1 f=new Demo1();
f.println();
//3、自己的程序中调用Java提供的程序,也需要先到导包才可以使用。注意:java.long包下的程序是不需要我们导包的
Scanner sc=new Scanner(System.in);
String s="黑马";
Random r=new Random();
//4、访问多个其他包下的程序,这些程序名有一样的情况下,默认只能导入一个程序,另一个程序必须带包名和类名来访问
Demo2 d3=new Demo2();
d3.println();
itcask.Demo2 d4=new itcask.Demo2();
d4.println();
}`在这里插入代码片`
}*
package String;
public class StringDemo1 {
public static void main(String[] args) {
//1、直接双引号得到字符串对象,封装字符串数据
String name="itheime";
System.out.println(name);
//2、new String 创建的字符,并调用构造器初始化字符串
String rs1=new String("ghjk");
System.out.println(rs1);
char[] chars={'a','黑','马'};
String rs2= new String(chars);
System.out.println(rs2);
byte[] bytes={97,98,99};
String rs3=new String(bytes);
System.out.println(rs3);
小结:
二,String的常用方法
package String;
public class StringDemo2 {
public static void main(String[] args) {
//目标:快速熟悉String提供的处理字符串的常用方法
String s="zxvb";
// 1、获取字符串的长度
System.out.println(s.length());
// 2、提取字符串中某个索引位置处的字符
char c=s.charAt(1);
System.out.println(c);
//字符串的遍历
for (int i = 0; i < 4; i++) {
char ch=s.charAt(i);
System.out.println(ch);
}
//3、把字符串转换成字符数组,再进行遍历
char[] chars=s.toCharArray();
for (int i = 0; i < chars.length; i++){
System.out.println(chars[i]);
}
//4、判断字符串内容,内容一样就返回true
String s1=new String("阮新宇666");
String s2=new String("阮新宇666");
System.out.println(s1==s2);// false
System.out.println(s1.equals(s2));//true
//5、忽略大小写比较字符串内容
String c1="34AeFG";
String c2="34aEfg";
System.out.println(c1.equals(c2));//false
System.out.println(c1.equalsIgnoreCase(c2));//true
//6、截取字符串内容(包前不包后的)
String s3="java是最好的编程语言之一";
String rs=s3.substring(0,8);
System.out.println(rs);
//7、从当前索引位置一直截取到字符串的末尾
String rs2=s3.substring(5);
System.out.println(rs2);
//8、把字符串中的某个内容替换成新内容,并返回新的字符串对象给我们
String info="这个游戏简直是个垃圾,垃圾游戏";
String rs3=info.replace("垃圾","**");
System.out.println(rs3);
//9、判断字符串中是否包含某个关键字
String info2="java是最好的编程之一,我爱java,java不爱我";
System.out.println( info2.contains("java") );
System.out.println( info2.contains("Java") );
//10、判断字符串是否以某个字符串开头
String rs4="张三丰";
System.out.println(rs4.startsWith("张"));//true
System.out.println(rs4.startsWith("张2"));//false
//11、把字符串按照某个指定内容分割成多个字符串,放到一个字符串数组中返回给我们
String rs5="张无忌,周芷若,殷素素,赵敏";
String[] names=rs5.split(",");
for (int i = 0; i < names.length ; i++) {
System.out.println(names[i]);
}
}
}
三、String使用时的注意事项
注意事项2:
*只要是以“…”方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份
*但通过new方一个新的对象nde,每new一次都会产生一个新的对象放在堆内存中
java存在编译优化机制,程序在编译时:“a”+“b”+“c”会直接转换成“abc,以提高程序的执行性能”
四、String案例
package String;
import java.util.Scanner;
public class StringTest4 {
public static void main(String[] args) {
//1、开发一个登录界面
for (int i = 0; i < 3; i++) {
Scanner sc = new Scanner(System.in);
System.out.println("请您输入登录名称");
String loginName = sc.next();
System.out.println("请您输入登录密码");
String passWord = sc.next();
//5、开始调用登录方法,判断是否登录成功
boolean rs = login(loginName, passWord);
if (rs) {
System.out.println("恭喜您,欢迎进入系统");
break;
} else {
System.out.println("登录名或密码错误,请您确认");
}
}
}
//2、开发一个登录方法,接受用户的登录名和密码,返回认证的结果
public static boolean login(String loginName,String passWord){
//3、准备一份正确的登录名和密码
String okLoginName="itheima";
String okPassWord="123456";
//4、开始正式判断用户是否登陆成功
//登陆成功
return okLoginName.equals(loginName) && okPassWord.equals(passWord);
}
}
package String;
import java.util.Random;
public class StringDemo5 {
public static void main(String[] args) {
//1、设计一个方法返回指定位数的验证码
System.out.println(createCode(6));
}
public static String createCode(int n){
//2、定义2个变量,一个记住最终产生的随机验证码 一个记住可能用到的全部字符
String code="";
String data="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
//3、开始定义一个循环产生每位随机字符
Random r=new Random() ;
for (int i = 0; i < n; i++) {
//4、随机一个字符范围内的索引
int index=r.nextInt(data.length()) ;
//5、根据索引去全部字符中提取该字符
code+=data.charAt(index);
}
//6、返回code即可
return code;
}
}
五、ArrayList快速入门
什么是集合?
集合是一种容器,是用来装数据的,类似于数组。
有数组,为啥还要学习集合?
1,数组完成并启动后,长度就固定了。
2,集合大小可变,开发中用得更多。
ArrayList集合
1、会提供创建容器对象的方式。
2、会提供相应的方法 (添加数据、删除某个数据、修改某个数据、获取某个数据)对容器进行操作。
学习ArrayList
1、创建对象。
2、增删改查的方法。
3、容器的其他特点。
package arrayList;
import java.util.ArrayList;
public class arrayListDemo1 {
public static void main(String[] args) {
//1、创建一个ArrayList的集合对象
//ArrayList<String>list=new ArrayList<String>();
ArrayList<String>list=new ArrayList<>();
list.add("阮新宇");
list.add("阮新宇");
list.add("taoke");
System.out.println(list);
//2、往集合中某个索引位置处添加一个数据
list.add(1,"MySQL");
System.out.println(list);
//3、根据索引获取集合中某个索引位置处得值
String rs=list.get(1);
System.out.println(rs);
//4、获取集合的大小(返回集合中存储的元素个数)
System.out.println(list.size());
//5、根据索引删除集合中的某个元素值,会返回被删除的元素给我们
System.out.println(list.remove(1));
System.out.println(list);
//6、直接删除某个元素值,删除成功会返回true,反之false
System.out.println(list.remove("taoke"));
System.out.println(list);
list.add(1,"666");
System.out.println(list);
//默认删除的是第一次出现“阮新宇”这个数据的
System.out.println(list.remove("阮新宇"));
System.out.println(list);
//7、修改某个索引位置处的数据,修改后会返回原来的值给我们
System.out.println(list.set(1,"刘林"));
System.out.println(list);
}
}
六、ArrayList应用案例
package arrayList;
import java.util.AbstractList;
import java.util.ArrayList;
/**
目标:掌握从集合容器中找数据并删除的技巧
list.add("java入门");
list.add("宁夏枸杞");
list.add("黑枸杞");
list.add("人字拖");
list.add("特级枸杞");
list.add("枸杞子");
*/
public class ArrayListTest2 {
public static void main(String[] args) {
//1、创建一个ArrayListTest集合对象
ArrayList<String> list=new ArrayList<>();
list.add("java入门");
list.add("宁夏枸杞");
list.add("黑枸杞");
list.add("人字拖");
list.add("特级枸杞");
list.add("枸杞子");
System.out.println(list);//[java入门,宁夏枸杞,黑枸杞,人字拖,特级枸杞,枸杞子]
//2、开始完成需求:从集合中找出包含枸杞的数据并删除它
/**for (int i = 0; i <list.size() ; i++) {
//i=0 1 2 3 4 5
//取出当前遍历到的数据
String ele= list.get(i);
//判断这个数据中包含枸杞
if (ele.contains("枸杞")){
//直接从集合中删除数据
list.remove(ele);
}
}
System.out.println(list);
*/
//会出bug,两个相邻且存在“枸杞”的数据删除第一个后第二个会在前一个的位置,而i会加1
//解决方法一:在list.remove(ele)后加i--
/**
for (int i = 0; i <list.size() ; i++) {
//i=0 1 2 3 4 5
//取出当前遍历到的数据
String ele= list.get(i);
//判断这个数据中包含枸杞
if (ele.contains("枸杞")){
//直接从集合中删除数据
list.remove(ele);
i--;
}
}
System.out.println(list);
*/
//解决方法二:从集合的后面倒着遍历并删除
for (int i = list.size()-1; i >=0; i--) {
//取出当前遍历的数据
String ele=list.get(i);
//判断这个数据中包含枸杞
if (ele.contains("枸杞")) {
//直接从集合删除该数据
list.remove(ele);
}
}
System.out.println(list);
}
}