day07

    xiaoxiao2021-03-25  108

    一、API

    1:打开帮助文档 2:点击显示,找到索引,看到输入框 3:你要学习什么内容,你就在框框里面输入什么内容 举例:Random 4:看包 java.lang包下的类在使用的时候是不需要导包的 5:看类的描述 Random类是用于生成随机数的类 6:看构造方法 Random():无参构造方法 Random r = new Random(); 7:看成员方法 public int nextInt(int n):产生的是一个[0,n)范围内的随机数 调用方法: 看返回值类型:人家返回什么类型,你就用什么类型接收 看方法名:名字不要写错了 看形式参数:人家要几个参数,你就给几个,人家要什么数据类型的,你就给什么数据类型的 int number = r.nextInt(100); 8:练习1: 打印提示用户键盘录入 从键盘录入任意字符串 控制台输出”您输入的字符串为....” 参考: public class APITest01 { public static void main(String[] args) { //Scanner(InputStream source) 我要用Scanner的有参构造创建对象 Scanner sc = new Scanner(System.in); /* * String nextLine() 此扫描器执行当前行,并返回跳过的输入信息。 */ String str = sc.nextLine(); System.out.println(str); } }

    二、String类

    1.构造方法

    构造方法: 1)String() String st = new String(); 2)String(String original) String str1 = new String("老王"); 3)String(char[] value) char[] arr = {'1','2'}; String str2 = new String(arr); 4)String(char[] value, int offset, int count) // value - 作为字符源的数组。 // offset - 初始偏移量。 // count - 长度。 char[] arr = {'1','2','3','4','5'}; new String(arr,1,3); //234 5)String str = "abc"; 直接给出字面值常量 str(也是对象) int i = 10; //i 不是对象,是基本数据类型的变量

    2.String的判断方法

    判断方法的结果是boolean数据类型 /* * Object:是类层次结构中的根类,所有的类都直接或者间接的继承自该类。 * 如果一个方法的形式参数是Object,那么这里我们就可以传递它的任意的子类对象。 * * String类的判断功能: * boolean equals(Object obj):比较字符串的内容是否相同 * boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写 * boolean startsWith(String str):判断字符串对象是否以指定的str开头 * boolean endsWith(String str):判断字符串对象是否以指定的str结尾 */ public class StringDemo { public static void main(String[] args) { //创建字符串对象 String s1 = "hello"; String s2 = "hello"; String s3 = "Hello"; //boolean equals(Object obj):比较字符串的内容是否相同 System.out.println(s1.equals(s2)); System.out.println(s1.equals(s3)); System.out.println("-----------"); //boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写 System.out.println(s1.equalsIgnoreCase(s2)); System.out.println(s1.equalsIgnoreCase(s3)); System.out.println("-----------"); //boolean startsWith(String str):判断字符串对象是否以指定的str开头 System.out.println(s1.startsWith("he")); System.out.println(s1.startsWith("ll")); //boolean endsWith(String str):判断字符串对象是否以指定的str结尾 System.err.println(s1.endsWith("lo")); System.err.println(s1.endsWith("llo0")); } }

    3.用户登录案例

    /* * 模拟登录,给三次机会,并提示还有几次。 * * 分析: * A:定义两个字符串对象,用于存储已经存在的用户名和密码 * B:键盘录入用户名和密码 * C:拿键盘录入的用户名和密码和已经存在的用户名和密码进行比较 * 如果内容相同,提示登录成功 * 如果内容不同,提示登录失败,并提示还有几次机会 */ public class StringTest { public static void main(String[] args) { //定义两个字符串对象,用于存储已经存在的用户名和密码 String username = "admin"; String password = "admin"; //给三次机会,用for循环实现 for(int x=0; x<3; x++) { //键盘录入用户名和密码 Scanner sc = new Scanner(System.in); System.out.println("请输入用户名:"); String name = sc.nextLine(); System.out.println("请输入密码:"); String pwd = sc.nextLine(); //拿键盘录入的用户名和密码和已经存在的用户名和密码进行比较 if(username.equals(name) && password.equals(pwd)) { System.out.println("登录成功"); break; }else { if((2-x) ==0) { System.out.println("用户名和密码被锁定,请与管理员联系"); }else { System.out.println("登录失败,你还有"+(2-x)+"次机会"); //2,1,0 } } } } }

    4.String的获取功能

    * String类的获取功能: * int length():获取字符串的长度,其实也就是字符个数 * char charAt(int index):获取指定索引处的字符 * int indexOf(String str):获取str在字符串对象中第一次出现的索引 * String substring(int start):从start开始截取字符串 * String substring(int start,int end):从start开始,到end结束截取字符串。包括start,不包括end

    5.遍历String字符串

    String s = "abcde"; for(int x=0; x<s.length(); x++) { System.out.println(s.charAt(x)); }

    6.练习:统计不同字符

    /* * 统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符) * * 分析: * A:键盘录入一个字符串数据 * B:定义三个统计变量,初始化值都是0 * C:遍历字符串,得到每一个字符 * D:拿字符进行判断 * 假如ch是一个字符。 * 大写:ch>='A' && ch<='Z' * 小写:ch>='a' && ch<='z' * 数字:ch>='0' && ch<='9' * 其他字符 * E:输出结果 */ public class StringTest2 { public static void main(String[] args) { //键盘录入一个字符串数据 Scanner sc = new Scanner(System.in); System.out.println("请输入一个字符串数据:"); String s = sc.nextLine(); //定义三个统计变量,初始化值都是0 int bigCount = 0; int smallCount = 0; int numberCount = 0; //遍历字符串,得到每一个字符 for(int x=0; x<s.length(); x++) { char ch = s.charAt(x); //拿字符进行判断 if(ch>='A' && ch<='Z') { bigCount++; }else if(ch>='a' && ch<='z') { smallCount++; }else if(ch>='0' && ch<='9') { numberCount++; }else { System.out.println("该字符"+ch+"非法"); } } //输出结果 System.out.println("大写字符:"+bigCount+"个"); System.out.println("小写字符:"+smallCount+"个"); System.out.println("数字字符:"+numberCount+"个"); } }

    7.String的转换功能

    * String类的转换功能: * char[] toCharArray():把字符串转换为字符数组 * String toLowerCase():把字符串转换为小写字符串 * String toUpperCase():把字符串转换为大写字符串

    8.连点调用方法:

    键盘录入一个字符串,把该字符串的首字母转成大写,其余为小写。(只考虑英文大小写字母字符) 方法1: /* * 键盘录入一个字符串,把该字符串的首字母转成大写,其余为小写。(只考虑英文大小写字母字符) * * 分析: * A:键盘录入一个字符串 * B:截取首字母 * C:截取除了首字母以外的字符串 * D:B转大写+C转小写 * E:输出即可 */ public class StringTest { public static void main(String[] args) { //键盘录入一个字符串 Scanner sc = new Scanner(System.in); System.out.println("请输入一个字符串:"); String s = sc.nextLine(); //截取首字母 String s1 = s.substring(0, 1); //截取除了首字母以外的字符串 String s2 = s.substring(1); //B转大写+C转小写 String s3 = s1.toUpperCase()+s2.toLowerCase(); //输出即可 System.out.println("s3:"+s3); } } 方法2: /* * 连点调用方法 * * 键盘录入一个字符串,把该字符串的首字母转成大写,其余为小写。(只考虑英文大小写字母字符) * 连接字符串的方法: String concat(String str) 将指定字符串连接到此字符串的结尾。 */ public class StringTest { public static void main(String[] args) { /*String s1 = "abc"; String s2 = "123"; String newStr = s1.concat(s2); System.out.println(newStr);*/ // abcdEfgHt //A Scanner sc = new Scanner(System.in); String str = sc.nextLine(); System.out.println(str.substring(0, 1).toUpperCase().concat(str.substring(1, str.length()).toLowerCase())); } }

    9.String的trim方法和split方法

    * 去除字符串两端空格 * String trim() 举例: String userName = " suwen qiang " ----》 String newStr = userName.trim() ----->"suwen qiang" * 按照指定符号分割字符串 * String[] split(String str) 传入的字符串是正则表达式,方法的意思是按照这个传入的字符串str进行切割原有的字符串;最终得到一个字符串数组 举例:String str = "a,b,c,d"; String[] arrStr = str.split(","); //用,去切割 arrStr ----> {"a","b","c","d"} String elementStr = arrStr[0];

    10.练习:

    /* * 把数组中的数据按照指定个格式拼接成一个字符串 * 举例:int[] arr = {1,2,3}; * 输出结果:[1, 2, 3] * * 分析: * 1.定义int[] * 2.定义一个方法,传入 int[] 返回一个String字符串“[1, 2, 3]” * 3.在方法里遍历使用字符串拼接,把拼接好的String返回出去 * 4.主方法中调用该方法,打印返回过来的字符串 */ public class StringTest { public static void main(String[] args) { int[] arr = {}; String result = getString(arr); System.out.println(result); } /* * 返回值是String * 参数:int[] */ public static String getString(int[] arr){ //1.定义字符串 String str = "["; for (int i = 0; i < arr.length; i++) { if(i == arr.length-1){ //最后一个元素,不加逗号 str = str + arr[i]; }else{ str = str + arr[i]+ ", "; } } str = str+"]"; return str; } }

    三、StringBuilder类

    1.概述: String 是一个不可变的字符序列。 String s = "abc"; String s = s + "def"; //s的地址更变了,s中断了与“abc”的连接,重新指向了 “abcdef”新对象; 原来的“abc” “def”就变成垃圾。 StringBuilder: 字符串容器(可变的字符序列)。 StringBuilder就相当于一个箱子,箱子里面能不停的装字符串。 箱子的地址不变。 2.构造和方法 * 构造方法: * StringBuilder() * * 成员方法: * public int capacity():返回当前容量,理论值 * public int length():返回长度(字符数),实际值 3.添加方法和反转方法 /* * StringBuilder append(任意类型) * StringBuilder reverse() */ public class StringBuilderTest1 { public static void main(String[] args) { //StringBuilder 是一个能装字符串的容器 StringBuilder sb = new StringBuilder(); sb.append("abc"); sb.append(123); sb.append(true); //一般打印对象打印的是地址值,String和StringBuilder StringBuffer 直接打印就能打印出来里面内容。 System.out.println(sb); sb.append("12345"); sb.reverse(); System.out.println(sb); //54321 } } 4.String 和StringBuilder的相互转换 1)String -----> StringBuilder 通过StringBuilder的构造方法 StringBuilder(String str) ,把String作为参数传进去得到一个StringBuilder对象 2)StringBuilder ----> String 调用StringBuilder中的toString()方法,可以把StringBuilder ----> String
    转载请注明原文地址: https://ju.6miu.com/read-24617.html

    最新回复(0)