javase基础8

1.API概述

API(Application Programming Interface) : 应用程序编程接口

2.使用API步骤

A:打开帮助文档
B:点击显示,找到索引,看到输入框
C:你要学习什么内容,你就在框框里面输入什么内容
举例:Random
D:看包
java.lang包下的类在使用的时候是不需要导包的
E:看类的描述
Random类是用于生成随机数的类
F:看构造方法
Random():无参构造方法
Random r = new Random();
G:看成员方法
public int nextInt(int n):产生的是一个[0,n)范围内的随机数
调用方法:
看返回值类型:人家返回什么类型,你就用什么类型接收
看方法名:名字不要写错了
看形式参数:人家要几个参数,你就给几个,人家要什么数据类型的,你就给什么数据类型的
int number = r.nextInt(100);

3.Scanner类

用Scanner类的方法可以完成接收键盘录入的数据

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

        //输出结果
        System.out.println("s:"+s);
}

4.String类

A:"abc"是String类的一个实例,或者成为String类的一个对象
B:字符串字面值"abc"也可以看成是一个字符串对象
C:字符串是常量,一旦被赋值,就不能被改变
D:字符串本质是一个字符数组

构造方法:
String(String original):把字符串数据封装成字符串对象
String(char[] value):把字符数组的数据封装成字符串对象
String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象

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类的判断功能:
boolean equals(Object obj):比较字符串的内容是否相同
boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
boolean startsWith(String str):判断字符串对象是否以指定的str开头
boolean endsWith(String str):判断字符串对象是否以指定的str结尾

/*
 * 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"));
    }
}

5.模拟登陆

/*
 * 模拟登录,给三次机会,并提示还有几次。
 *
 * 分析:
 *         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
                }
            }
        }
    }
}

6.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
 */
public class StringDemo {
    public static void main(String[] args) {
        //创建字符串对象
        String s = "helloworld";

        //int length():获取字符串的长度,其实也就是字符个数
        System.out.println(s.length());
        System.out.println("--------");

        //char charAt(int index):获取指定索引处的字符
        System.out.println(s.charAt(0));
        System.out.println(s.charAt(1));
        System.out.println("--------");

        //int indexOf(String str):获取str在字符串对象中第一次出现的索引
        System.out.println(s.indexOf("l"));
        System.out.println(s.indexOf("owo"));
        System.out.println(s.indexOf("ak"));
        System.out.println("--------");

        //String substring(int start):从start开始截取字符串
        System.out.println(s.substring(0));
        System.out.println(s.substring(5));
        System.out.println("--------");

        //String substring(int start,int end):从start开始,到end结束截取字符串
        System.out.println(s.substring(0, s.length()));
        System.out.println(s.substring(3,8));
    }
}

7.统计一个字符串中大写字母,小写字母,数字出现的次数

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+"个");
    }
}

8.String类的转换功能

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

/*
 * 键盘录入一个字符串,把该字符串的首字母转成大写,其余为小写。(只考虑英文大小写字母字符)
 *
 * 分析:
 *         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);
    }
}

9.按照指定格式拼接字符串

/*
 * 把数组中的数据按照指定个格式拼接成一个字符串
 * 举例:int[] arr = {1,2,3};
 * 输出结果:[1, 2, 3]
 *
 * 分析:
 *         A:定义一个int类型的数组
 *         B:写方法实现把数组中的元素按照指定的格式拼接成一个字符串
 *         C:调用方法
 *         D:输出结果
 */
public class StringTest {
    public static void main(String[] args) {
        //定义一个int类型的数组
        int[] arr = {1,2,3};

        //写方法实现把数组中的元素按照指定的格式拼接成一个字符串

        //调用方法
        String s = arrayToString(arr);

        //输出结果
        System.out.println("s:"+s);
    }
    public static String arrayToString(int[] arr) {
        String s = "";

        //[1, 2, 3]
        s += "[";
        for(int x=0; x<arr.length; x++) {
            if(x==arr.length-1) {
                s += arr[x];
            }else {
                s += arr[x];
                s += ", ";
            }
        }
        s += "]";
        return s;
    }
}

10.字符串反转

/*
 * 字符串反转
 * 举例:键盘录入”abc”
 * 输出结果:”cba”
 *
 * 分析:
 *         A:键盘录入一个字符串
 *         B:写方法实现字符串的反转
 *             a:把字符串倒着遍历,得到的每一个字符拼接成字符串。
 *             b:把字符串转换为字符数组,然后对字符数组进行反转,最后在把字符数组转换为字符串
 *         C:调用方法
 *         D:输出结果
 */
public class StringTest2 {
    public static void main(String[] args) {
        //键盘录入一个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String s = sc.nextLine();

        //写方法实现字符串的反转

        //调用方法
        String result = reverse(s);

        //输出结果
        System.out.println("result:"+result);
    }

    //把字符串转换为字符数组,然后对字符数组进行反转,最后在把字符数组转换为字符串
    public static String reverse(String s) {
        //把字符串转换为字符数组
        char[] chs = s.toCharArray();

        //对字符数组进行反转
        for(int start=0,end=chs.length-1; start<=end; start++,end--) {
            char temp = chs[start];
            chs[start] = chs[end];
            chs[end] = temp;
        }

        //最后在把字符数组转换为字符串
        String ss = new String(chs);
        return ss;
    }
}

11.StringBuffer类概述

StringBuilder:是一个可变的字符串。字符串缓冲区类。
String和StringBuilder的区别:
String的内容是固定的
StringBuilder的内容是可变的

12.+=拼接字符串耗费内存的原因

每次拼接都会产生新的字符串对象,而利用StringBuilder来拼接字符串自始至终用的都是同一个StringBuilder容器

13.StringBuffer类的常用方法

A:构造方法:
StringBuilder()
B:成员方法:
public int capacity():返回当前容量 (理论值)
public int length():返回长度(已经存储的字符个数)
public StringBuilder append(任意类型):添加数据,并返回自身对象
public StringBuilder reverse():反转功能

14.String和StringBuffer的相互转换

/*
 * StringBuilder和String的相互转换
 *
 * StringBuilder -- String
 *         public String toString():通过toString()就可以实现把StringBuilder转成String
 *
 * String -- StringBuilder
 *         StringBuilder(String str):通过构造方法就可以实现把String转成StringBuilder
 */
public class StringBuilderTest {
    public static void main(String[] args) {
        //StringBuilder -- String
        /*
        StringBuilder sb = new StringBuilder();
        sb.append("hello").append("world");

        String s = sb.toString();
        System.out.println(s);
        */

        //String -- StringBuilder
        String s = "helloworld";
        StringBuilder sb = new StringBuilder(s);
        System.out.println(sb);
    }
}

15.StringBuffer拼接字符串

/*
 * 把数组拼接成一个字符串
 * 举例:
 *         int[] arr = {1,2,3};
 * 结果:
 *         [1, 2, 3]
 */
public class StringBuilderTest2 {
    public static void main(String[] args) {
        //定义一个数组
        int[] arr = {1,2,3};

        //写方法实现拼接

        //调用方法
        String s = arrayToString(arr);

        //输出结果
        System.out.println("s:"+s);
    }
    public static String arrayToString(int[] arr) {
        StringBuilder sb = new StringBuilder();
        //[1, 2, 3]
        sb.append("[");
        for(int x=0; x<arr.length; x++) {
            if(x==arr.length-1) {
                sb.append(arr[x]);
            }else {
                sb.append(arr[x]).append(", ");
            }
        }
        sb.append("]");

        String result = sb.toString();

        return result;
    }
}

16.StringBuffer完成字符串反转

/*
 * 把字符串反转
 *
 * 分析:
 *         A:键盘录入一个字符串
 *         B:写方法实现反转
 *             String -- StringBuilder -- reverse() -- String
 *         C:调用方法
 *         D:输出结果
 */
public class StringBuilderTest3 {
    public static void main(String[] args) {
        //键盘录入一个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String s = sc.nextLine();

        //写方法实现反转

        //调用方法
        String result = myReverse(s);

        //输出结果
        System.out.println("result:"+result);
    }
    public static String myReverse(String s) {
        //String -- StringBuilder -- reverse() -- String
        StringBuilder sb = new StringBuilder(s);
        sb.reverse();
        String result = sb.toString();
        return result;
    }
}
时间: 2024-08-24 16:30:26

javase基础8的相关文章

JavaSE基础之JDBC

JavaSE基础之JDBC 1.JDBC 的步骤: ①加载数据库驱动: a.MySQL:com.mysql.jdbc.Driver: b.SQLServer:com.microsoft.jdbc.sqlserver.SQLServerDriver: c.Oracle:oracle.jdbc.driver.OracleDriver: ②获取数据库链接:  a.MySQL:jdbc:mysql://localhost:3306/DataBaseName: b.SQLServer:jdbc:sqlse

java-se基础 2(注释和原生数据类型)

Java SE 第二讲: 1. Windows: notepad, editplus, ultraedit, gvim Linux: vi, vim, gedit 2. Java中的数据类型分为两大类: 1) 原生数据类型 (Primitive Data Type) 2) 引用类型(对象类型) (Reference Type) 3. 变量与常量:所谓常量,就是值不会变化的量:所谓变量,就是值可以变化的量. 4. 如何定义变量? 变量类型 变量名; int a; 5. 如何为变量赋值? 变量名 =

javaSE基础07

javaSE基础07 一.static静态修饰符 用了static修饰的变量就会变成共享的属性,只会初始化一次,在内存中只存在一个,并且每个对象都可以访问,存放在方法区(数据共享区) 1.1 static用来修饰成员变量 一个成员变量被static修饰了叫静态成员变量,如果没有修饰叫非静态成员变量 静态成员变量的访问方式: 1.用对象进行访问:对象.变量名 2.还可以通过类名来访问:类名.变量名 使用注意点: 1.不要认为方便就将所有的变量用static修饰,只有当这个数据真正需要共享的时候才用

javase基础复习攻略《二》

今天就开始的真正走进JAVASE的世界,本篇介绍的是:JAVASE基础语法,大家如果有C语言的基础,对于本节内容一定感觉非常轻松,编程语言之间的都是相通的,只不过C语言属于面向过程编程,而JAVA语言则是一种面向过程的设计思路,相信以后的发展一定会朝着面向服务的方向. 废话不多说,开始今天的总结: 1.标示符: 标示符为何物?它就是JAVA规定的一种命名规则.凡是需要你自己进行命名的地方都需要遵守JAVA的标示符规则,JAVA标识符包括:a.标识符是由英文字母.下划线(_).美元符号($)和数字

javase基础复习攻略《十》

按照计划本篇为大家总结JAVA的网络编程,什么叫网络编程呢?网络编程!=网站编程,对于这一点大家一定要注意,很多小朋友都曾经这么认为.既然谈到网络编程,咱们先了解一下网络的基础知识,什么是计算机网络?把分布在不同区域的计算机与专门的外部设备用通信线路互联成一个规模大.功能强的网络系统,从而使众多计算机可以方便的互相传递信息,共享硬盘.软件.数据信息等资源. 什么是网络通信协议:计算机网络中实现通信必须有一些约定即通信协议,对速率.传输代码.代码结构.传输控制步骤.出错控制等制定标准. 网络通信接

Java复习第二天---JavaSE基础

[1]以下关于 JVM 的叙述,哪些项正确? A.JVM 运行于操作系统之上,它依赖于操作系统 B.JVM 运行于操作系统之上,它与操作系统无关 C.JVM 支持 Java 程序运行,它能够直接运行 Java 字节码文件 D.JVM 支持 Java 程序运行,它能够直接运行 Java 源代码文件 扩展名为.java的是源代码文件(文本文件):开发时编写代码的文件 扩展名为.class的是字节码文件(二进制):系统运行时执行的文件 [2]下列选项中正确的表达式是: A.byte b = 128; 

JavaSE基础之封装

JavaSE基础之封装 一.Java中的封装 1.字面意思: 包装: 2.专业含义: 面向对象的三大特征之一: 指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问. 二.封装的目的 1.隐藏类的实现细节: 2.让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对成员变量的不合理访问: 3.可进行数据检查,从而有利于保证对象信息的完整性: 4.便于修改,提高代码的可维护性: 三.如何实现良好的封

javaSE基础之基本细节注解

1.  对于多行注释而言,不能进行嵌套注释.....! /* dada /* d adasdas */ */ 只是不被允许的.... 2.对于记事本编程......如果竹类是公有类,则必须保证类名和为文件名相同,如果不是公有类不,则没有这个要求. 3.0 Java中的名称命名规范: 包名:多单词组成时所有字母都小写:xxxyyyzzz 类名接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz 变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxY

javaSE基础之记事本编程

首先安装好jdk和jre,之后进行如下操作: 1. 将代码记事本---->cmd--->javac 文件名.java ----->java 文件名 如图: 2. 关于记事本文件属性的问题,如何设置隐藏与不隐藏...... Ctrl+R ----->工具--->文件夹选项--->查看---->不隐藏/隐藏 javaSE基础之记事本编程

java学习之路之javaSE基础1

<h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用举例 * 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备.由硬件和软件所组成,没有安装任何软件的计算机称为裸机.常见的形式有台式计算机.笔记本计算机.大型计算机等. * 应用举例 * 1:科学计算 * 2.数据处理 * 3.自动控制 *