首页 > 其他分享 >day10

day10

时间:2024-10-18 20:25:03浏览次数:1  
标签:String int System println day10 字符串 out

String类的构造方法:

/*
    public String()
    public String(byte[] bytes)                     转换byte数组类型位字符 ASILL码值 65-A 97-a
    public String(byte[] bytes,int offset,int length)
    public String(char[] value)
    public String(char[] value,int offset,int count)
    public String(String original)                  在TESTString2中

 */
public class TESTString1 {
    public static void main(String[] args) {
        byte[] bytes = {97,98,99};
        char[] chars = {'s','d','v'};
        String s1 = new String(bytes,0,1);//offset:起始索引     length:起始索引后几个(包括索引)
        String s2 = new String(chars,0,2);
        System.out.println(s1);
        System.out.println(s2);
    }

}

String类的判断功能:

/*
    boolean equals(Object obj)
    boolean equalsIgnoreCase(String str)            忽略大小写
    boolean contains(String str)                    包含str字符串
    boolean startsWith(String str)                  以str开头
    boolean endsWith(String str)                    以str结尾
    boolean isEmpty()                               是否为空

 */
public class TESTString2 {
    public static void main(String[] args) {
        String s1 = "小花";
        String s2 = new String("小花");
        System.out.println(s1==s2);             //两个对象创建的位置不同 s3在方法区里面 s4在堆里面  == 是判断地址值 所以返回False
        System.out.println(s1.equals(s2));//equals是判断两个字符串的值是否相等 返回True

        String s3 ="";
        String s4 = null;
        System.out.println(s1.isEmpty());
        System.out.println(s3.isEmpty());           //判断是否为空
        System.out.println(s4.isEmpty());           //null代表没有对象 无法使用isEmpty函数 所以会报错

    }
}

String类的获取功能:

    int length()  获取字符串中的字符个数,字符串长度
    char charAt(int index)  根据索引获取字符串中某一个字符
    int indexOf(int ch)  根据ascii码值获取对应字符所在的索引位置,左边起第一个
    int indexOf(String str)  获取大字符串中小字符串的位置,返回小字符串第一个字符的索引
    int indexOf(int ch,int fromIndex)  从某个索引开始向后寻找某个字符,返回找到字符在整个大字符串中的索引位置
    int indexOf(String str,int fromIndex)  从某个索引开始向后寻找某个字符,返回找到字符串第一个字符在整个大字符串中的索引位置
    String substring(int start)  从指定位置向后截取,返回新的字符串
    String substring(int start,int end)  截取字符串中的一部分 [start, end)

String转换功能:

    byte[] getBytes()  转换成字节数组
    char[] toCharArray()  转换成字符数组
    static String valueOf(char[] chs)  将字符数组转字符串
    static String valueOf(int i) 将整数转成字符串类型
    String toLowerCase()  转小写
    String toUpperCase()  转大写
    String concat(String str)  拼接字符串

String其它功能:

    替换功能
        String replace(char old,char new)  由新字符替换字符串中所有旧字符
        String replace(String old,String new)  由新的字符串替换旧的字符串
        String trim()  去除字符串两边的空格
        int compareTo(String str)  按字典顺序比较两个字符串 当结果是0的时候表示两个字符串内容相同
        int compareToIgnoreCase(String str) 忽略大小写 按字典顺序比较两个字符串 当结果是0的时候表示两个字符串内容相同

Object类

 java中所有的类默认都有一个共同的父类:Object

    == 比较:
        1、比较的是两个基本数据类型的话,比较两个数值是否相等
        2、比较的是两个引用数据类型的话,比较的是两个对象的地址值是否相等

    成员方法:
        int hashCode() 返回对象的哈希码值。 可以看作地址值的另外一种表现形式
        public final Class getClass() 返回此 Object的运行时类。 获取当前类的class文件对象, 一个类全局只有一个在方法区中
        public String toString()
            打印一个对象名,默认调用的是类中的toString()方法
            若我们自己没有编写该方法的话,默认使用父类Object类中的toString()
            而父类中默认的toString()打印是一个地址值
            我们今后打印一个对象名的时候,输出是地址值意义不大,我们今后更多的是想看一个对象中成员变量值的情况
            要想实现上面的输出成员变量值的话,重写toString()方法,这样调用的就是自己重写后的toString()
            自动生成即可
public boolean equals(Object obj)
protected void finalize() 垃圾回收用的
//默认情况下,若对象类中没有自己编写equals方法,默认使用的是父类中Object类中的equals方法
        //而父类中Object类中的equals方法底层调用的是==比较,若比较的是引用数据类型,比较的是地址值
        //而我们这里s1和s2接受的是不同两个对象的地址值,所以默认比较的结果是false
//        System.out.println(s1.equals(s2));
        //需求:当对象的姓名和年龄一样的时候,表示是同一个学生
        //比较的对象类中自己重写一个equals方法,自动生成即可

一个标准类的4.0版本写法:

    成员变量: 私有化
    构造方法: 有参,无参
    成员方法: getXxx()和setXxx()
    toString(): 重写父类中的toString()

protected Object clone()

java中并不是所有的类都可以被克隆,只有授权的类的对象才可以使用克隆方法
我们通过阅读帮助文档后发现,若一个对象的类没有实现Cloneable接口的话,是不可以调用clone方法的
然后,我们再去看Cloneable接口的时候,发现该接口中没有任何抽象方法,今后像这样的接口称之为标记接口

克隆在IT行业中,称之为拷贝。
拷贝分为两种:
    1、浅拷贝
    2、深拷贝

面试题:Object类中的clone是浅拷贝还是深拷贝。答:是浅拷贝
深拷贝会拷贝引用数据类型

Scanner

Scanner: 一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。

    构造方法:
        Scanner(InputStream source) 构造一个新的 Scanner ,产生从指定输入流扫描的值。
public class ScannerDemo1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        //获取一个数字:
//        int i = sc.nextInt();
//        System.out.println(i);
//
//        String s1 = sc.next();
//        System.out.println(s1);

        //获取数字的时候,我们是不是只能够输入数字呢?
//        System.out.println("请输入一个数字:");
        //hasNextXxx()判断下一个输入的内容是否是指定类型
//        if(sc.hasNextInt()){
//            int i = sc.nextInt();
//            System.out.println(i);
//        }else {
//            System.out.println("您输入的内容不是一个int类型的值!");
//        }

//        int i = sc.nextInt();
//        System.out.println(i);
//        String s1 = sc.next(); //无法接收换行等空白特殊字符
//        System.out.println(s1);
        //输入字符串的另外一种方法
//        String s1 = sc.nextLine(); //可以接收换行等空白特殊字符
//        System.out.println(s1);


        System.out.println("hello world");
    }
}

标签:String,int,System,println,day10,字符串,out
From: https://www.cnblogs.com/flxf/p/18436656

相关文章

  • day10-IO流(二)
    day10-IO流(二)一、字符流同学们,前面我们学习了字节流,使用字节流可以读取文件中的字节数据。但是如果文件中有中文,使用字节流来读取,就有可能读到半个汉字的情况,这样会导致乱码。虽然使用读取全部字节的方法不会出现乱码,但是如果文件过大又不太合适。所以Java专门为我们提供了另外......
  • 代码随想录算法训练营第十天|Day10栈与队列
    232.用栈实现队列题目链接/文章讲解/视频讲解:https://programmercarl.com/0232.%E7%94%A8%E6%A0%88%E5%AE%9E%E7%8E%B0%E9%98%9F%E5%88%97.html思路这是一道模拟题,不涉及到具体算法,使用栈来模拟队列的行为,如果仅仅用一个栈,是一定不行的,所以需要两个栈一个输入栈,一个输出......
  • Java 初学 day10
    Java10常用类1、API概述API(ApplicationProgrammingInterface)应用程序编程接口编写应该机器人程序去控制机器人踢足球,程序就需要向机器人发出向前跑、向后跑、射门、抢球等各种命令,没有编过程序的人很难想象这样的程序如何编写。但是对于有经验的开发人员来说,知道机器人......
  • Day10-12英语
    Day10-12英语classfields类字段、类成员变量。类的字段通常指的是在类中声明的变量fieldn.字段instantiatev.实例化指根据类创建一个具体的对象的过程。facilityn.设施、功能propertyn.属性、财产port......
  • 代码随想录算法训练营day10| 232.用栈实现队列 225. 用队列实现栈 20. 有效的括
    学习资料:https://programmercarl.com/栈与队列理论基础.html栈与队列学习记录:232.用栈实现队列(两个栈(stack_in,stack_out)实现一个队列的行为)点击查看代码classMyQueue(object):def__init__(self):self.stack_in=[]self.stack_out=[]d......
  • java_day10_Object、Scanner、String
    1、Object类java中所有的类默认都有一个共同的父类:Object==比较:1、比较的是两个基本数据类型的话,比较两个数值是否相等2、比较的是两个引用数据类型的话,比较的是两个对象的地址值是否相等成员方法:inthashCode()返回对象的哈希码值。可以看作地址值的另外......
  • 代码源Csp-S模拟赛Day10-11赛后总结
    代码源Csp-S模拟赛Day10-11赛后总结Day10赛时T1赛时感觉很难维护时间以及多个精灵同时到达同一格子的情况,后来想了一种做法:对于每个格子最早被遍历到的时间我们的处理是容易的,你考虑我们可以对每行每列都建一棵线段树(数据范围保证了\(rc\leq5e5\),所以总空间大致是一个\(4rc......
  • Day10-JavaDoc
    Day10-JavaDocJavaDoc介绍JavaDoc:javadoc命令是用来生成自己API文档的。javadoc是一个工具,它可以读取源代码中的文档注释,并将其转换为格式规范的API文档。javadoc通过解析文档注释中的特定标记,如@author、@version、@since、@param、@return、@throws等,来提取关键信......
  • Day10-域名
    Day10-域名域名是由一串用点分隔的字符组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。例如“www.baidu.com”就是一个域名。它主要由几个部分组成:顶级域名(Top-levelDomain,TLD):如“.com”“.net”“.org”等,代表不同的域名类型或用途。......
  • Day10-包机制
    Day10-包机制包机制Java为更好地组织类而提供的机制,用于区别类名的命名空间。包相当于文件夹包语句的语法格式为:(定义包)packagepkg1[.pkg2[.pkg3...]];一般利用公司域名倒置作为包名。为了能够使用某一个包的成员,需要在Java程序中明确导入该包,使用“import”语句可完......