• 08_常用API_第八天(String)


    今日学习目标

    • 能够明确API的使用步骤
    • 能够使用Scanner类获取键盘输入的字符串
    • 能够使用String类的构造方法创建字符串对象
    • 能够明确String类的构造方法创建对象,和直接赋值创建字符串对象的区别
    • 能够使用文档查询String类的判断方法
    • 能够使用文档查询String类的获取方法
    • 能够使用文档查询String类的转换方法

    第1章  API文档

    1.1 概述

    • API(Application Programming Interface) --- 应用程序编程接口
    • 编写一个机器人程序去控制机器人踢足球,程序就需要向机器人发出向前跑、向后跑、射门、抢球等各种命令,没有编过程序的人很难想象这样的程序如何编写。但是对于有经验的开发人员来说,知道机器人厂商一定会提供一些用于控制机器人的Java类,这些类中定义好了操作机器人各种动作的方法。其实,这些Java类就是机器人厂商提供给应用程序编程的接口,大家把这些类称为API。
    • Java API就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。
    • 在JDK安装目录下有个src.zip文件,这个文件解压缩后里面的内容是所有Java类的源文件。可以在其中查看相对应的类的源码。
    • 我们在每次查看类中的方法时,都打开源代码进行查看,这种方式过于麻烦。其实,我们可以通过查帮助文档的方式,来了解Java提供的API如何使用。

    1.2 使用步骤

    • 打开帮助文档
    • 点击显示,找到索引,看到输入框
    • 你要找谁?
      • 在输入框里输入,然后回车
    • 看包
      • java.lang下的类不需要导包,其他需要
    • 看类的解释和说明
    • 学习构造方法
    • 使用成员方法

    1.3 API的使用(Scanner类)

    • 获取键盘录入的字符串数据
      public class DemoScanner {
          public static void main(String[] args) {
              //创建键盘录入对象
              Scanner sc = new Scanner(System.in);    
              //接收数据
              System.out.println("请输入一个字符串数据:");
              String s = sc.nextLine();    
              //输出结果
              System.out.println("s:"+s);
          }
      }

    1.4    next和nextLine的区别(思考)

    第2章    String类

    2.1 String概述

    • 字符串是由多个字符组成的一串数据
    • 字符串可以看成是字符数组

     2.2 构造方法

    • 构造方法
      • public String(String original)把字符串数据封装成字符串对象
      • public String(char[] value)把字符数组的数据封装成字符串对象
      • public String(char[] value,int offset,int count)把字符数组中的一部分数据封装成字符串对象
      • 直接赋值也可以是一个对象(定义一个字符串变量)
      • 注意:字符串是一种比较特殊的引用数据类型,直接输出字符串对象输出的是该对象中的数据。
    public class Demo01String {
        public static void main(String[] args) {
            //方式1
            //String(String original):把字符串数据封装成字符串对象
            String s1 = new String("hello");
            System.out.println("s1:"+s1);
            System.out.println("----------");
            
            //方式2 
            //String(char[] value):把字符数组的数据封装成字符串对象
            char[] chs = {'h','e','l','l','o'};
            String s2 = new String(chs);
            System.out.println("s2:"+s2);
            System.out.println("-----------");
            
            //方式3
            //String(char[] value,int index,int count):把字符数组中的一部分数据封装成字符串对象
            //String s3 = new String(chs,0,chs.length);
            String s3 = new String(chs,1,3);
            System.out.println("s3:"+s3);
            System.out.println("----------");
            
            //方式4
            String s4 = "hello";
            System.out.println("s4:"+s4);    
        }
    }

    String的特点(区别)

    • 通过构造方法创建字符串对象
      • String s = new String(“hello”);
    • 直接赋值创建字符串对象
      • String s = “hello”;
    • 区别是什么?
    public class Demo02String {
        public static void main(String[] args) {
            String s1 = new String("hello");
            String s2 = "hello";
            
            System.out.println("s1:"+s1);//s1:hello
            System.out.println("s2:"+s2);//s1:hello
            
            System.out.println("s1==s2:"+(s1==s2));//s1==s2:false
            String s3 = "hello";
            System.out.println("s1==s3:"+(s1==s3));//s1==s3:false
            System.out.println("s2==s3:"+(s2==s3));//s2==s3:true
        }
    }


     

    1.1     常用方法

      • 判断功能方法
        • boolean equals(Object obj):比较字符串的内容是否相同
        • boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
        • boolean startsWith(String str):判断字符串对象是否以指定的str开头
        • boolean endsWith(String str):判断字符串对象是否以指定的str结尾
    public class Demo03String {
        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));//true
            System.out.println(s1.equals(s3));//false
            System.out.println("------------");
            
            //boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大写
            System.out.println(s1.equalsIgnoreCase(s2));//true
            System.out.println(s1.equalsIgnoreCase(s3));//true
            System.out.println("------------");
            
            //boolean startsWith(String str):判断字符串对象是否以指定的str开头
            System.out.println(s1.startsWith("he"));//true
            System.out.println(s1.startsWith("ll"));//false
        }
    }

     练习:模拟用户登录

    • 获取功能方法
      • int length():获取字符串的长度,其实也就是字符个数
      • char charAt(int index):获取指定索引处的字符
      • int indexOf(String str):获取str在字符串对象中第一次出现的索引,没有返回-1
      • String substring(int start):从start开始截取字符串到字符串结尾
      • String substring(int start,int end):从start开始,到end结束截取字符串;包括start,不包括end
    public class DemoString {
        public static void main(String[] args) {
            //创建字符串对象
            String s = "helloworld";
            //int length():获取字符串的长度,其实也就是字符个数
            System.out.println(s.length());//10
            System.out.println("----------");
            //char charAt(int index):获取指定索引处的字符
            System.out.println(s.charAt(0));//h
            System.out.println(s.charAt(1));//e
            System.out.println("----------");
            //int indexOf(String str):获取str在字符串对象中第一次出现的索引,没有返回-1
            System.out.println(s.indexOf("l"));//2
            System.out.println(s.indexOf("owo"));//4
            System.out.println(s.indexOf("ak"));//-1
            System.out.println(s.indexOf("-----------"));//-1
            //String substring(int start):从start开始截取字符串到字符串结尾
            System.out.println(s.substring(0));//hello
            System.out.println(s.substring(5));//world
            System.out.println("----------");
            //String substring(int start,int end):从start开始,到end结束截取字符串.包括start,不包括end
            System.out.println(s.substring(0, s.length()));//helloworld
            System.out.println(s.substring(3,8));//helloworld
        }
    }

    练习:字符串的遍历

    public class Demo02StringTest {
        public static void main(String[] args) {
            //创建一个字符串对象
            String s = "abcde";
            //原始做法
            System.out.println(s.charAt(0));
            System.out.println(s.charAt(1));
            System.out.println(s.charAt(2));
            System.out.println(s.charAt(3));
            System.out.println(s.charAt(4));
            System.out.println("-----------");
            
            //用for循环改进
            for(int x=0;x<5;x++){
                System.out.println(s.charAt(x));
            }
            System.out.println("-----------");
            for(int x=0;x<s.length();x++)
                System.out.println(s.charAt(x));
        }
    }

    练习:统计字符串中大写、小写及数字字符个数

    public class Demo03StringTest {
        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++;
                }
            }
            //输出结果
            System.out.println("大写字符:"+bigCount+"个");
            System.out.println("小写字符:"+smallCount+"个");
            System.out.println("数字字符:"+numberCount+"个");
        }
    }
    • 转换功能方法
      • char[] toCharArray():把字符串转换为字符数组  
      • String toLowerCase():把字符串转换为小写字符串  
      • String toUpperCase():把字符串转换为大写字符串  
    public class Demo01String {
        public static void main(String[] args) {
            //创建字符串对象
            String s = "abcde";
            //char[] toCharArray():把字符串转换为字符数组
            char[] chs = s.toCharArray();
            for(int x=0;x<chs.length;x++){
                System.out.println(chs[x]);//a b c d e 
            }
            System.out.println("-----------");
            //String toLowerCase():把字符串转换为小写字符串
            System.out.println("HelloWorld".toLowerCase());//helloworld
            //String toUpperCase():把字符串转换为大写字符串
            System.out.println("HelloWorld".toUpperCase());//HELLOWORLD
        }
    }

    练习:键盘录入一个字符串,把该字符串的首字母转成大写,其余为小写。

    public class Demo02StringTest {
        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);
            //2转大写+3转小写
            String s3 = s1.toUpperCase()+s2.toLowerCase();
            //输出即可
            System.out.println("s3:"+s3);
        }
    }

    去除空格和分割功能方法

    • String trim()去除字符串两端空格
    • String[] split(String str)按照指定符号分割字符串
    public class Demo01String {
        public static void main(String[] args) {
            //创建字符串对象
            String s1 = "helloworld";
            String s2 = "  helloworld  ";
            String s3 = "  hello  world  ";
            System.out.println("---"+s1+"---");//---helloworld---
            System.out.println("---"+s1.trim()+"---");//---helloworld---
            System.out.println("---"+s2+"---");//---  helloworld  ---
            System.out.println("---"+s2.trim()+"---");//---helloworld---
            System.out.println("---"+s3+"---");//---  hello  world  ---
            System.out.println("---"+s3.trim()+"---");//---hello  world---
            System.out.println("---------------------------------------");
            
            //String[] split(String str)
            //创建字符串对象
            String s4 = "aa,bb,cc";
            String[] strArray = s4.split(",");
            for(int x=0;x<strArray.length;x++){
                System.out.println(strArray[x]);//aa bb cc
            }
        }
    }

    练习:把数组中的数据按照指定格式拼接成一个字符串

      举例:int[] arr = {1,2,3}; 输出结果:[1, 2, 3]

    public class Demo01StringTest {
        public static void main(String[] args) {
            //定义一个int类型的数组
            int[] arr = {1,2,3};
            //调用方法
            String s = arrayToString(arr);
            //输出结果
            System.out.println("s:"+s);
        }
        /*
         * 写方法实现把数组中的元素按照指定的格式拼接成一个字符串
         * 两个明确:
         *     返回值类型:String 
         *     参数列表:int[] arr
         */
        public static String arrayToString(int[] arr) {
            String s ="";
            s += "[";
            for(int x = 0;x<arr.length;x++){
                if(x == arr.length-1){
                    s += arr[x];
                    s += "]";
                }else{
                    s += arr[x];
                    s += ",";
                }
            }
            return s;
        }
    }

    练习:字符串反转(两种方式)

    • 替换功能方法
      • String replace(char oldChar,char newChar)替换字符串中的单个字符  
      • String replace(CharSequence oldStr, CharSequence newStr)替换字符串中的指定内容  
    public class Demo02String {
        public static void main(String[] args) {
            String str = "itcast itheima";
            //字符串对象方法replace替换字母t为大写T
            str = str.replace('t', 'T');
            System.out.println(str);
        }
    }

    练习:键盘输入数据,将数据中的字符@,替换成*

    public class Demo03String {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个数");
            String str = sc.nextLine();
            str = str.replace('@','*');
            System.out.println(str);
        }
    }

     

     

  • 相关阅读:
    C#面向对象的三大特性概述
    SQL Server 低版本还原高版本的数据库
    将表转化成脚本的存储过程
    iis安装失败解决方法
    kafka consumer 配置详解
    C#解析XML文件
    blat
    REST接口POST方法发送文件到服务器(C#)
    http://www.codeproject.com/Questions/117324/uploadfileincwithHttpWebRequest
    PDF Password Remover
  • 原文地址:https://www.cnblogs.com/Haidrens/p/10141016.html
Copyright © 2020-2023  润新知