自动导包:点击File找到seting工具设置,在搜索框输入auto将Add unambigous imports on the fly框换上对号就可以实现自动导包了。
1.同一个包下的程序可以直接访问。
2.访问其他报下的程序,必须导包才能访问。
3.自己程序中,调用java提供的程序,也要导包使用。
注意:java.long报下的程序时不需要我们导包的,可以直接使用。
4.访问多个其他包下的程序,这些程序名又一样的情况下,默认只能导入一个程序,另一个程序必须带包名和类名来访问。
字符串的处理
package com.itheima.String; public class StringDemo1 { public static void main(String[] args) { //1.创建字符串的第一种方式 String name="itheima"; System.out.println(name);//name其实是一个地址,根据地只找到itheima; //2.new String创建字符串对象,并调用构造器初始换字符串。 String rs1=new String();//不常用 System.out.println(rs1);//没有输入内容,结果是空白, String rs2=new String("ithemia");//不常用 System.out.println(rs2); char[]chars={'a','黑','马'}; String rs3=new String(chars); System.out.println(chars); byte[]bytes={97,98,99}; String rs4=new String(bytes); System.out.println(rs4);//共四种构造器 } }
String的常有方法
package com.itheima.String; public class StringDemo2 { public static void main(String[] args) { String s="黑马java"; //1.提取字符串的长度 System.out.println(s.length()); //2.提取字符串中某个索引位置处的字符 char c=s.charAt(1); System.out.println(c); //字符串的遍历 for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); System.out.println(ch); } //3.把字符串转换成字符数组,再进行遍历。 char[]chars=s.toCharArray(); for (int j = 0; j <chars.length ; j++) { System.out.println(chars[j]); } //4.判断字符串内容,内容一样就返回true. String s1=new String("黑马"); String s2=new String("黑马"); System.out.println(s1==s2);//false.两个的地址是不一样的!!!! System.out.println(s1.equals(s2));//true. //5.忽略大小写,比较自负内容。 String c1="12asDF"; String c2="12ASdf"; System.out.println(c1==c2); System.out.println(c1.equalsIgnoreCase(c2)); //6.截取字符串内容 String s3="java是最好的程序语言之一"; System.out.println(s3.substring(0, 8));//结尾不包含,包前不包后 //7.从当前索引位置一致截取到字符串的末尾 String rs2=s3.substring(5); System.out.println(rs2); //8.把字符串中的某个内容替换成新的内容,返回新的字符串给我们。 String info="这个电影简直是个垃圾,垃圾电影!!"; System.out.println(info.replace("垃圾","**")); //9.判断某个字符串是否包含某个关键字 String info2="java是最好的编程语言之一,我爱java,java不爱我。"; System.out.println(info2.contains("java"));//严格控制大小写 //10.判断字符串是否以某个字符串开头 String s4="张三丰"; System.out.println(s4.startsWith("张")); //11.把字符串按照某个内容分割成多个字符串,放到一个字符串数组中返回给我们。 String rs5="张无忌,周芷若,殷素素,赵敏"; String[]names=rs5.split(",");//以,为标准 for (int i = 0; i < names.length; i++) { System.out.println(names[i]); } } }
String使用时的注意事项
1.String的对象是不可变字符串对象,每次赋值,之前字符串对象确实是没有改变的。
2.只要是以双引号给出的字符串对象,存储在常量池中,而且内容相同时只会储存出一份。节约内存。
String a1="abcd";
String a2="abcd";
System.out.println(a1==a2);//结果是true
3.new String创建字符串对象,每new一次出来都是一个新的对象,放在堆内存中。
package com.itheima.String; import java.util.Scanner; public class StringDemo3 { public static void main(String[] args) { 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(); boolean rs=login(loginName,passWord); if(rs){ System.out.println("登陆成功"); break; }else { System.out.println("登陆名或登陆密码错误"); } } } public static boolean login(String loginName,String password){ String okLoginName="ithemia"; String okPassWord="123456"; // if(okLoginName.equals(loginName)&&okPassWord.equals(password)) { //不能用双==好,那样比较的是两个代码的地址。会出bug的。 // return true; // }else{ // return false; // } return okLoginName.equals(loginName)&&okPassWord.equals(password); //直接得到结果。 } }注意:字符串的比较不能用==比较,其比较的是地址
基本数据类型的变量或者值应该使用==比较。
用String提供的equals方法,他只关心字符串内容一样就返回true.
用String来开发验证码。
package com.itheima.String; import java.util.Random; public class StringDemo4 { public static void main(String[] args) { System.out.println(createCode(5)); } public static String createCode(int n){ Random r=new Random(); String code=""; String data="abcdefghijklmnopqrstuvwxyzQWERTYUIOPLKJHGFDSAZXCVBNM123456789"; for (int i = 0; i < 5; i++) { int index = r.nextInt(data.length()); code += data.charAt(index); } return code; } }