JAVASE第12天笔记

Day12课堂笔记

标签(空格分隔): java基础


Scanner类概述

  • 注意:建一个类的时候,不要以这个系统提供的类名作为自己的本类名,不然就会使用本类来创建对象,不会再次使用系统类
  • Scanner的方法:
    1,hasNextXXX:举例 hasNextInt hasNextLine
    2,nextXXX:举例 nextInt nextLine

  • 关于使用nextInt方法和nextLine方法的时候出现的问题解决方案

    • 第一种:先获取一个数值后,在创建一个新的键盘录入对象获取字符串。
    • 第二种:直接在nextInt方法下面再加一行nextLine方法,用来过滤掉\r\n即可,不需要创建多一次Scanner对象
    • 第三种:把所有的数据都先按照字符串获取,然后要什么,你就对应的转换为什么。(后面讲)
  • 注意:以后统一使用nextLine方法进行数据录入,避免使用nextInt方法在录入非整数数据时候出现异常问题,使用nextLine方法不会.
    1,键盘录入的都是字符串,都用nextLine方法,如果要录入整数数据也可以,因为后面的学习有把数字字符串转成int类型

package com.heima.scanner;

import java.util.Scanner;


public class Next_Demo {
    /**
     * next和nextLine方法区别
     */
    public static void main(String[] args) {
        // Alt + /   Ctrl + shift +O
        Scanner sc = new Scanner(System.in);
    /*  System.out.println("请输入一行字符串:");
        String next = sc.next();   空格 tab \r\n
        System.out.println(next);*/
        System.out.println("请输入一段字符串:");
        String line = sc.nextLine(); // \r\n
        System.out.println(line);
    }
}

String类

String类是一个java给我们提供的系统类
“”:这种双引号括起来的就称为字符串,也是一个对象
字符串一旦初始化就不能发生改变,这句话对还是错?说出原因
答:对,”“双引号括起来的字符串,其实也是一个字符串常量,常量是不能改变.
举例:
String str = “abcd”;
str = “cdba”;

String类构造方法

  • 将字节数组 转成 字符串
    String(byte[] arr); //前提你要有一个字节数组给我,我才能帮你转成字符串
    举例:
byte[] arr = {1,5,100};
String s = new String(arr);
  • 将字符数组 转成 字符串
    String(char[] arr);
    //前提是你要有一个字符数组给我,我才能帮你转换
char[] arr = {'a','b','c'};
String s = new String(arr);

字符串面试题(非常非常重要)

String s1 = “abc”; //常量池
String s2 = new String(“abc”); // 两个对象 1个在常量池下 1个在堆内存. 堆内存里面只是一个常量池下的副本
String s3 = s1 + s2;// new StringBuffer 或者 new StringBuilder对象
== : 比较的是地址值
String s5 = “ab”; //常量池
String s6 =”ab”; //这个时候的”ab”会去常量池找,如果有,就直接使用,如果没有,就在常量池下创建
String s7 = “abc”;//也是新创建一个字符串”abc”
equals方法: 重写了Object父类里面的equals方法,比较的是字符串里面字符序列(内容)

判断方法(非常非常重要)

  • boolean equals(Object obj):比较字符串的内容是否相同,区分大小写
    * boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
    * boolean contains(String str):判断大字符串中是否包含小字符串
    * boolean startsWith(String str):判断字符串是否以某个指定的字符串开头
    * boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾
    * boolean isEmpty():判断字符串是否为空。
    举例:
    实际应用
String s = "http://www.xxxx.com/xx.jpg";
s.startsWith("http:");

注意问题

//如果是字符串常量和字符串变量比较,通常都是字符串常量调用方法,将变量当作参数传递,防止空指针异常
注意:如果问到字符串常量和变量比较的时候,我们需要知道区分

        if("admin".equals(userName) && "admin".equals(password)) {
                System.out.println("欢迎" + userName + "登录");
                break;                                  //跳出循环
            }

String类的获取功能

int length():获取字符串的长度。
char charAt(int index):获取指定索引位置的字符
int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引。
lastIndexOf(inc ch:)返回指定字符在此字符串中最后一次出现处的索引(下标)
String substring(int s):从指定位置开始截取字符串,默认到末尾。注意,返回的是新的字符串(非常重要)
String substring(int start,int end):从指定位置开始到指定位置结束截取字符串。注意也是返回新的字符串,对原来的字符串不会影响 (非常非常重要)

字符串和数组分别怎么获取长度?
String s1 = “abc”;
s1.length();
数组长度
int arr[] = new int[5];
arr.length

字符串遍历

public static void main(String[] args) {
        String s = "heima";

        for(int i = 0; i < s.length(); i++) {           //通过for循环获取到字符串中每个字符的索引
            /*char c = s.charAt(i);
            System.out.println(c);*/
            System.out.println(s.charAt(i));            //通过索引获取每一个字符   
        }
    }
toCharArray() 把字符串转成字符数组
*  byte[] getBytes():把字符串转换为字节数组。 // 常用
* char[] toCharArray():把字符串转换为字符数组。 //遍历时候会用
举例:
String s = "abcdc";
char[] cArr = s.toCharArray();
for(int i= 0;i< cArr.length;i++){
    System.out.println(cArr[i]);
}

链式编程

链式编程:只要保证每次调用完方法返回的是对象,就可以继续调用
String s2 = s.substring(0, 1).toUpperCase().concat(s.substring(1).toLowerCase());

关于拼接

public static void main(String[] args) {
        int[] arr = {1,2,3};
        String s = "[";                         //定义一个字符串用来与数组中元素拼接

        for (int i = 0; i < arr.length; i++) {  //{1,2,3}
            //弊端:每次循环不断创建新的字符串,会占用内存空间 有没什么解决方法?
            if(i == arr.length - 1) {
                s = s + arr[i] + "]";           //[1, 2, 3]
            }else {
                s = s + arr[i] + ", ";          //[1, 2, 
            }
        }

        System.out.println(s);
    }

String的替换功能及案例演示
* String replace(char old,char new)
* String replace(String old,String new)
String的去除字符串两空格
String trim()

关于字节数组和字符数组

int[] arr1 = new int[5]; //整型的数组
byte [] arr2 = new byte[5]; // 字节数组 ,用byte的类型
char[] arr3 = new char[10]; //字符数组,用char类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值