12.01 常见对象(Scanner的概述和方法介绍)
A.Scanner的概述
B.Scanner的构造方法原理
public static final InputStream in; 标准的输入流.对应着键盘录入
C.一般方法
hasNextXxx() 判断是否还有下一个输入项,Xxx()可以是Int,Double
nextXXX() 获取下一个输入项
12.02 常见对象(Scanner获取数据出现的小问题及解决方案)
A.两个方法
public int nextInt() 获取一个int类型的值
public String nextLine() 获取一个String类型的值
B.案例演示
a.先演示获取多个int值,多个String类型的值
注:获取两个字符串,只需要将上面的int i = sc.nextInt()改为int i = sc.nextLine().
b.再演示先获取int值,然后获取String值出现问题
c.问题解决方案 (***************************001)
1.创建两个对象,分别接收int,String类型(注:这样会浪费空间)
2.把所有的数据都先按照字符串获取,然后要什么,你要对应的转换什么
package day12; import java.util.Scanner; //1.导包 public class day12_02_普通版 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //2.Scanner录入 System.out.println("程传政,请输入第一个数:"); //3.窗口输入 int i = sc.nextInt(); //4.系统录入数据 System.out.println("程传政,请输入第二个数:"); //1.两个int int j = sc.nextInt(); System.out.println("i="+i+",j+"+j); System.out.println("----------------------------------------"); System.out.println("程传政,请输入第一个字符串:"); //2.两个String String ii = sc.nextLine(); System.out.println("程传政,请输入第二个字符串:"); String jj = sc.nextLine(); System.out.println("ii="+ii+",jj="+jj); System.out.println("----------------------------------------"); System.out.println("程传政,请输入第一个数:"); //3.int+String int iii = sc.nextInt(); System.out.println("程传政,请输入第二个字符串:"); String jjj = sc.nextLine(); System.out.println("iii="+iii+",jjj="+jjj); } } /*注:获取两个字符串,只需要将上面的sc.nextInt()改为String ii = sc.nextLine();*/ -------------------------------- package day12; import java.util.Scanner; public class day12_02_高级 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //2.Scanner录入 System.out.println("程传政,请输入第一个数:"); //3.窗口输入 int i = sc.nextInt(); //4.系统录入数据 System.out.println("程传政,请输入第二个数:"); //1.两个int int j = sc.nextInt(); } }View Code
12.03 常见对象(String类的概述)
A.String类的概述
1.字符串"abc"也可以看成一个字符串对象
2.字符串都是常量,一旦被复制就不可改变
12.04 常见对象(String类的构造方法)
A.常见构造方法(关于字节数组和字符数组 转字符串)
public String() 空字符串
public String(byte[] bytes) 字节数组转成字符串
public String(byte[] bytes,int index,int length):字节数组的一部分转成字符串,注:从index开始,转length长度个
public String(char[] value) 字符数组转成字符串
public String(char[] value,int index,int count):字符数组的一部分转成字符串
public String(String original) 把字符串常量值转成字符串
package day12; public class day12_04 { public static void main(String[] args) { String s1 = new String(); //1.空字符串 System.out.println(s1); byte[] arr1 = {97,98,99}; //2.字节数组转成字符串 String s2 = new String (arr1); System.out.println(s2); byte[] arr3 = {97,98,99,100,101,102,103}; //3.字节数组的一部分转成字符串 String s3 = new String (arr3,2,3); //注:从2开始,转3个 System.out.println(s3); byte[] arr4 = {'a','b','c','d','e'}; //4.字符数组转成字符串 String s4 = new String (arr4); System.out.println(s4); byte[] arr5 = {'a','b','c','d','e'}; //5.字符数组转成字符串 String s5 = new String (arr5,2,3); //注:从2开始,转3个 System.out.println(s5); String s6 = new String("heima"); //6.把字符串常量值转成字符串 System.out.println(s6); } }View Code
12.05 常见对象(String类的面试题)
1.
2.下面这句话再内存中创建了几次对象
String s1 = new String("abc")
3.判断定义为String类型的s1和s2是否相等
String s1 = new String("abc");
String s2 = "abc";
4.判断定义为String类型的s1和s2是否相等
5.判断定义为String类型的s1和s2是否相等
String s1 = "ab";
String s2 = "abc";
String s3 = "s1+c";
System.out println(s3==s2);
System.out.println(s3.equals(s2));
12.06 常见对象(String类的方法)
boolean equals(Object obj): 比较字符串的内容是否相同,区分大小写
boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽视大小写
boolean contains(String str):判断大字符串是否包含小字符串
boolean startWith(String str):判断字符串是否以某个指定的字符串开头
boolean endWith(String str):判断字符串是否以某个指定的字符串结尾
boolean isEmpty(): 判断字符串是否为空
package day12; public class day12_06 { /*""是字符串常量,同时也是一个String类的对象 * null是空常量*/ public static void main(String[] args) { String s1 = "heima"; String s2 = "heima"; String s3 = "heiMa"; String s4 = "我爱heima,haha"; String s5 = ""; String s55=null; System.out.println(s1.equals(s2)); //1. 比较字符串的内容是否相同,区分大小写 System.out.println(s1.equals(s3)); System.out.println(s4.contains(s1)); //3.判断大字符串是否包含小字符串 System.out.println(s5.isEmpty()); System.out.println(s55.isEmpty()); //判断字符串是否为空 } }View Code
12.07 常见对象(模拟用户)
需求:模拟登陆,给三次机会,并且还有几次提示
用户名是admin,密码是123456
12.08 常见对象(String类的获取方法)
int length(): 获取字符串的长度
char charAt(int index): 获取指定索引位置的字符
int indexOf(int ch): 返回指定字符 在此字符串中第一次出现的索引
int indexOf(String ch): 返回指定字符串 在此字符串中第一次出现的索引
int inderOf(int ch,int formIndex): 返回指定字符在此字符串中从指定位置后第一次
int indexOf(String ch,int formIndex): 返回指定字符串在此字符串中从指定位置后第一次出现处的索引
lastIndexOf()
String substring(int start); 从指定位置开始截取字符串,默认到末尾
String substring(int start,int String类的构造方法)
package day12; public class day12_08 { public static void main(String[] args) { String s1 = "heima"; System.out.println("获取字符串的长度:"+s1.length()); //1.获取字符串的长度 int[] arr = {11,22,33,44,55}; System.out.println("数组的长度:"+arr.length); //1.1数组的长度 int index = s1.indexOf('e'); //3.返回指定字符在此字符串中第一次出现的索引 System.out.println(index); int index2 = s1.indexOf("ma"); //4.返回指定字符串在此字符串中第一次出现的索引 System.out.println(index2); } }View Code
12.09 常见对象(字符串的遍历)
遍历所有字符串
package day12; public class day12_09 { public static void main(String[] args) { String s = "heima"; for (int i = 0; i < s.length(); i++) { char c= s.charAt(i); System.out.print(" "+ c); } } }View Code
12.10 常见对象(统计不同类型的字符个数)
一个大字符串中大写,小写,数字出现的次数
12.11 常见对象(String类的转换功能)
byte[] getBytes(): 1.字节数组
char[] toCharArray(): 字符串转成 2.字符数组
static String valueOf(char[] chs): 1.字符数组
static String valuef(int i): 2.int 转成字符串
String toLowerCase(): 1.小写
String toUpperCase(): 字符串 2.大写
String concat(String str): 3.拼接
package day12; public class day12_11 { public static void main(String[] args) { String s1 = "abc"; byte[] arr = s1.getBytes(); for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } System.out.println("-----------------------------"); String s2 = "你好你好"; byte[] arr2 = s2.getBytes(); //字符串转成 1.字节数组 for (int i = 0; i < arr2.length; i++) { System.out.print(arr2[i]+" "); //GBK码表 System.out.println("----------------------------"); String s22 = "heima"; char[] arr22 = s22.toCharArray(); //字符串转成 2.字符数组 for (int j = 0; j < arr22.length; j++) { System.out.print("字符数组:"+ arr22[j]+" "); } System.out.println("----------------------------"); char[] arr3 ={'a','b','c','d'}; String s3 = String.valueOf(arr3); //1.字符数组 转成字符串 System.out.println(s3); } System.out.println("----------------------------"); String s4 = "heiMA"; String s5 = "chengxuYUAN"; String s44 = s4.toLowerCase(); String s55 = s5.toUpperCase(); System.out.println("转小写:"+s44); System.out.println("转大写:"+s55); System.out.println("拼接:"+s4.concat(s5)); } }View Code
12.12 常见对象(案例:转换字符)
需求:把一个字符串的首字母转成大写,其余转成小写
package day12; public class day12_12 { /** * 需求:把一个字符串的首字母转成大写,其余转成小写 */ public static void main(String[] args) { String s = "woaiheimaHEIMA"; String s1 = s.substring(0,1).toUpperCase().concat(s.substring(1).toLowerCase()); System.out.println(s1); } }View Code
12.13 常见对象(数组转成字符串)
需求:将数组中的数据按要求拼接成一个字符串
int[] arr = {1,2,3}
结果是: [1,2,3]
package day12; public class day12_13 { /** *int[] arr = {1,2,3} 结果是: [1,2,3] */ public static void main(String[] args) { int [] arr = {1,2,3}; String s = "["; for(int i = 0;i<arr.length;i++){ if(i == arr.length - 1){ s = s + arr[i]+"]"; }else{ s = s + arr[i]+", "; } } System.out.println(s); } }View Code
12.14 常见对象(String类的其他方法)
A. String的替换功能及案例演示
String replace(char old,char new)
String replace(String old,String new)
B.String的去除字符串两端空格及案例演示
String trim()
C.String的按字典顺序比较两个字符串及案例演示
int compareTo(String str)
int compareToIgnoreCase(String str)
package day12; public class day12_14 { public static void main(String[] args) { String s = "heima"; String s1 = s.replace('i','o'); System.out.println(s1); String s2 = s.replace("hei", "hao"); System.out.println(s2); } }View Code
12.15 常见对象(字符串反转)
需求:字符串反转
键盘录入:abc
输出结果:cba
package day12; import java.util.Scanner; public class day12_15 { /** * 1.键盘录入获取字符串Scanner * 2.字符串转字符数组 * 3.倒着遍历字符数组 * 4.打印 */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("程传政请输入一个字符串:"); String line = sc.nextLine(); char[] arr = line.toCharArray(); String s = ""; //键入一个空字符串循环使用 for (int i = arr.length - 1; i >=0; i--) { s = s+arr[i]; } System.out.println(s); } }View Code
12.16 常见对象(大窜中小窜的次数)
package day12; public class day12_16 { /** * 1.定义计时器 * 2.通过indexOf * 如果没有返回-1 * 如果有返回索引值 * 3.根据索引值加上小字符串的长度,截取大字符串,将截取到的结果赋值给大字符串 */ public static void main(String[] args) { //定义大字符串 String max = "woaiheima,heimabutongyubaima,wulunheimahaishibaima,zhaodaogongzuojiushihaoma"; String min = "heima"; int count = 0; int index = 0; while((index = max.indexOf(min)) != -1){ count++; max = max.substring(index + min.length()); } System.out.println(count); } }View Code