Java基础的重点知识-06-String、Arrays、Math、static关键字

news2025/1/17 6:10:20

文章目录

  • String类(java.lang)
  • static关键字
  • Arrays类(java.uitl)
  • Math类(java.lang)

String类(java.lang)

java.lang.String 类代表字符串。

特征:

  • 字符串不变:字符串的值在创建后不能被更改。
  • 因为String对象是不可变的,所以它们可以被共享。
  • “abc” 等效于 char[] data={ ‘a’ , ‘b’ , ‘c’ } 。
public static void main(String[] args) {
        String str1 =  "abc";
        String str2 = "abc";
        char[] chars = {'a','b','c'};
        String str3 = new String(chars);
        System.out.println(str1 == str2);
        System.out.println(str3);
    }

在这里插入图片描述
String类的底层是靠字符数组实现的。
常用方法:

  • public boolean equals (Object anObject) :将此字符串与指定对象进行比较。
  • public boolean equalsIgnoreCase (String anotherString) :将此字符串与指定对象进行比较,忽略大小写。
 public static void main(String[] args) {
      String a = "hello";
      String b = "hello";
      String c = "Hello";

      System.out.println(a.equals(b));
      System.out.println(b.equals(c));
      System.out.println(a.equalsIgnoreCase(c));
    }

在这里插入图片描述
这里我们可以看到,a字符串和b字符串是相等的,b字符串和c字符串是不相等的,但是当我们使用equalsIgnoreCase()方法来进行比较的时候,a和c比较的结果就是相等的。这表示equals()比较的时候不忽略大小写,equalsIgnoreCase 比较的时候忽略大小写。

  • public int length () :返回此字符串的长度。
  • public String concat (String str) :将指定的字符串连接到该字符串的末尾。
  • public char charAt (int index) :返回指定索引处的 char值。
  • public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引。
  • public String substring (int beginIndex) :返回一个子字符串,从beginIndex开始截取字符串到字符
    串结尾。
  • public String substring (int beginIndex, int endIndex) :返回一个子字符串,从beginIndex到
  • endIndex截取字符串。含beginIndex,不含endIndex。
public static void main(String[] args) {
        String str1 = "xiaohu";
        String str2 = " love study";
        System.out.println("str1的长度:" + str1.length());
        String str3 = str1.concat(str2);
        System.out.println("str1连接str3后的结果:" + str3);
        System.out.println("获取指定索引的值:" + str1.charAt(0));
        String str4 = str1.substring(4);
        String str5 = str2.substring(6,8);
        System.out.println("返回从开始索引到字符串结尾的值:" + str4);
        System.out.println("返回指定开始索引到结尾索引的值:" + str5);
    }

在这里插入图片描述
注意:
字符串读取索引的时候是从第0个索引开始,并且当我们使用substring()方法时,是含头不含尾的,例如str2的值为” love study“,我们的str5是从6号索引开始一直到8号索引,即从0开始数,一直到s是第6号索引(这里要注意空格符号也要算作一位),第八号是u,但是根据含头不含尾的规则,我们可以看到输出的结果为st。

  • public char[] toCharArray () :将此字符串转换为新的字符数组。
  • public byte[] getBytes () :使用平台的默认字符集将该 String编码转换为新的字节数组。
  • public String replace (CharSequence target, CharSequence replacement) :将与target匹配的字符串使用replacement字符串替换。
public static void main(String[] args) {
       String str = "xiaohu love code";
        char[] charArray = str.toCharArray();
        for (int i = 0; i < charArray.length; i++) {
            System.out.print(charArray[i] + ",");
        }
        System.out.println();
        System.out.println("=======================");
        byte[] bytes = str.getBytes();
        for (int i = 0; i < bytes.length; i++) {
            System.out.print(bytes[i] + ",");
        }
        System.out.println();
        System.out.println("=======================");
        String str1 = str.replace("love", "like");
        System.out.println(str1);
    }

在这里插入图片描述

  • public String[] split(String regex) :将此字符串按照给定的regex(规则)拆分为字符串数组。
  public static void main(String[] args) {
       String str1 = "a111,b222,c333";
        String[] split = str1.split(",");
        for (int i = 0; i < split.length; i++) {
            System.out.println(split[i]);
        }
}

在这里插入图片描述
这里String regex参数表示的是分割规则,我们定义的字符串是“a,b,c”是以’,‘进行分割,因此我们可以获取到一个字符串数组,每个数组里面存储的就是以逗号分割的每个字符串。

static关键字

以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。

  • 类变量:使用 static关键字修饰的成员变量。
    举例:
    企业员工报到。现在想为每一位新来报到的员工编号(eid),从第一名员工开始,eid为1000,以此类推。员工号必须是唯一的,连续的,并且与企业的人数相符,这样以便知道,要分配给下一名新员工的员工号是多少。这样我们就需要一个变量,与单独的每一个员工对象无关,而是与整个企业员工数量有关。
public class Emp {
    private String name;
    private int age;

    private int eid;

    private static int EmpNum = 1000;

    public Emp(String name, int age) {
        this.name = name;
        this.age = age;

        this.eid = EmpNum++;
    }

    @Override
    public String toString() {
        return "Emp{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public static void main(String[] args) {
        Emp emp1 = new Emp("小明", 20);
        Emp emp2 = new Emp("小红", 21);
        System.out.println("员工号" + emp1.eid + ":" + emp1);
        System.out.println("员工号" + emp2.eid + ":" + emp2);
    }
}

在这里插入图片描述

  • 类方法:使用 static关键字修饰的成员方法,习惯称为静态方法。
    注意点:
  • 静态方法可以直接访问类变量和静态方法。
  • 静态方法不能直接访问普通成员变量或成员方法。反之,成员方法可以直接访问类变量或静态方法。
  • 静态方法中,不能使用this关键字。

static修饰的成员可以并且建议通过类名直接访问。

静态原理图解:
在这里插入图片描述
静态代码块:
定义在成员位置,使用static修饰的代码块{ }。

  • 位置:类中方法外。
  • 执行:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行。
import java.util.ArrayList;

public class Student {

    private String name;
    private int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    private static ArrayList<Student> arrayList;
    static {
        Student stu1 = new Student("小胡", 18);
        Student stu2 = new Student("小潘", 19);
        arrayList = new ArrayList<>();
        arrayList.add(stu1);
        arrayList.add(stu2);
    }

    public static void main(String[] args) {
        for (int i = 0; i < arrayList.size(); i++) {
            System.out.println(arrayList.get(i));

        }
    }
}

在这里插入图片描述

Arrays类(java.uitl)

java.util.Arrays 此类包含用来操作数组的各种方法

  • public static String toString(int[] a) :返回指定数组内容的字符串表示形式。
  • public static void sort(int[] a) :对指定的 int 型数组按数字升序进行排序。
 public static void main(String[] args) {
        int[] arr = {3,2,1,8,5,6,10,9};
        String str = Arrays.toString(arr);
        System.out.println(str);
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++){
            System.out.print(arr[i] + ",");
        }
    }

在这里插入图片描述
Arrays工具类对开发有很大的帮助,感兴趣的小伙伴可以深入了解一下其中的使用技巧。

Math类(java.lang)

  • public static double abs(double a) :返回 double 值的绝对值。
  • public static double ceil(double a) :返回大于等于参数的最小的整数。(向上取整)
  • public static double floor(double a) :返回小于等于参数最大的整数。 (向下取整)
  • public static long round(double a) :返回最接近参数的 long。 (相当于四舍五入方法)
    代码示例:
public static void main(String[] args) {
        double x = - 1.389;
        double xabs = Math.abs(x);
        System.out.println("xabs = " + xabs); // 1.389
        xabs = Math.ceil(xabs);
        System.out.println("xabs = " + xabs); // 2.0
        xabs = Math.floor(1.13);
        System.out.println("xabs = " + xabs); // 1.0
        xabs = Math.round(5.31);
        System.out.println("xabs = " + xabs); // 5.0
    }

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1853424.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【2024德国签证】资金证明详解|从线上开户到签证申请超详细指南!

保证金介绍 1.什么是德国保证金&#xff08;自保金 Sperrkonto&#xff09;&#xff1f; 来自非欧洲国家的国际学生必须提供经济资金证明&#xff0c;以证明你能支持你在德国的生活和学习。 保证金用途&#xff1a;非欧盟国家的公民&#xff0c;需要签证来德国&#xff0c;必…

安徽理工大学2计算机考研情况,招收计算机专业的学院和联培都不少!

安徽理工大学&#xff08;Anhui University of Science and Technology&#xff09;&#xff0c;位于淮南市&#xff0c;是安徽省和应急管理部共建高校&#xff0c;安徽省高等教育振兴计划“地方特色高水平大学”建设高校&#xff0c;安徽省高峰学科建设计划特别支持高校&#…

C++初学者指南第一步---13.聚合类型

C初学者指南第一步—13.聚合类型 文章目录 C初学者指南第一步---13.聚合类型1. 类型分类&#xff08;简化&#xff09;2. 如何定义和使用3. 为什么选择自定义类型/数据聚合&#xff1f;4. 聚合类型初始化5.混合6. 复制7. 值和引用的语义8.聚合的向量(std::vector)9.最令人烦恼的…

python使用pywebview打造一个现代化的可视化GUI界面

&#x1f308;所属专栏&#xff1a;【python】✨作者主页&#xff1a; Mr.Zwq✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01; 您的…

不使用ES,如何使用MySQL实现模糊匹配

1.业务场景 例如&#xff1a;我们实现一个公司的申请审批流程&#xff0c;整个业务流程涉及到两种角色&#xff0c;分别是商务角色与管理员角色&#xff0c;整个流程如下图所示&#xff1a; 核心流程总结为一句话&#xff1a;商务角色申请添加公司后由管理员进行审批。 商务在…

Android中如何动态的调整Dialog的背景深暗

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 在 Android 开发中&#xff0c;当你使用 Dialog 或 DialogFragment 时&#xff0c;可以通过设置 Window 的背景变暗来突出它的可见性。这个效果…

数据虚拟化、Data Fabric(数据编织)的兴起,对数据管理有何帮助?

数字化时代&#xff0c;虚拟化&#xff08;Virtualization&#xff09;并不是一个很陌生的词汇&#xff0c;它是现代数据中心资源管理的核心技术之一&#xff0c;是对 IT 资源&#xff08;如服务器、存储设备、网络设备等&#xff09;的抽象&#xff0c;通过屏蔽 IT 资源的物理…

C语言入门4-函数和程序结构

函数举例 读取字符串&#xff0c;如果字符串中含有ould则输出该字符串&#xff0c;否则不输出。 #include <stdio.h>// 函数声明 int getLine(char s[], int lim); int strindex(char s[], char t[]);int main() {char t[] "ould"; // 要查找的目标子字符串…

windows和linux路径斜杆转换脚本,打开即用

前言&#xff1a; windows和linux的目录路径斜杆是相反的&#xff0c;在ssh或者其他什么工具在win和ubuntu传文件时候经常需要用到两边的路径&#xff0c;有这个工具就不用手动去修改斜杆反斜杠了。之前有个在线网站&#xff0c;后来挂了&#xff0c;就想着自己搞一个脚本来用。…

批量重命名神器揭秘:一键实现文件夹随机命名,自定义长度轻松搞定!

在数字化时代&#xff0c;我们经常需要管理大量的文件夹&#xff0c;尤其是对于那些需要频繁更改或整理的文件来说&#xff0c;给它们进行批量重命名可以大大提高工作效率。然而&#xff0c;传统的重命名方法既繁琐又耗时&#xff0c;无法满足高效工作的需求。今天&#xff0c;…

【C++】初始化列表、匿名对象、static成员、友元、内部类

文章目录 一、初始化列表构造函数体赋值初始化列表explicit关键字 二、匿名对象三、static成员四、友元友元函数友元类 五、内部类六、练习题 一、初始化列表 构造函数体赋值 实际上&#xff0c;构造函数的函数体内&#xff0c;并不是对 对象 初始化的地方&#xff0c;而是对…

电子杂志制作的必备软件:轻松提升制作效率

​电子杂志作为一种新型的媒体形式&#xff0c;具有互动性强、内容丰富、传播范围广等特点。随着互联网的普及&#xff0c;越来越多的企业和个人开始关注和投入电子杂志的制作。然而&#xff0c;电子杂志的制作过程往往复杂繁琐&#xff0c;需要付出大量的时间和精力。为了提高…

微信小程序学习(六):常用原生 API

&#x1f517;API官方文档 1、网络请求 wx.request({// 接口地址&#xff0c;仅为示例&#xff0c;并非真实的接口地址url: example.php,// 请求的参数data: { x: },// 请求方式 GET|POST|PUT|DELETEmethod: GET,success (res) {console.log(res.data)},fail(err) {console.…

本地离线模型搭建指南-本地运行显卡选择

搭建一个本地中文大语言模型&#xff08;LLM&#xff09;涉及多个关键步骤&#xff0c;从选择模型底座&#xff0c;到运行机器和框架&#xff0c;再到具体的架构实现和训练方式。以下是一个详细的指南&#xff0c;帮助你从零开始构建和运行一个中文大语言模型。 本地离线模型搭…

05 - matlab m_map地学绘图工具基础函数 - 设置比例尺指北针

05 - matlab m_map地学绘图工具基础函数 - 设置比例尺指北针 0. 引言1. 关于m_scale2. 关于m_ruler3. 关于m_northarrow4. 结语 0. 引言 本篇介绍下m_map中添加指北针(m_northarrow)、比例尺(m_ruler)和进行比例缩放(m_scale)的函数及其用法 。 1. 关于m_scale m_scale用于图件…

LeetCode 算法:二叉树的中序遍历 c++

原题链接&#x1f517;&#xff1a;二叉树的中序遍历 难度&#xff1a;简单⭐️ 题目 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 示例 2&#xff1a; 输入&…

【Pandas驯化-14】一文搞懂Pandas中的时间处理函数date_range、resample、shift技巧

【Pandas驯化-14】一文搞懂Pandas中的时间处理函数date_range、resample、shift技巧 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 相关…

PHP米表域名出售管理源码带后台

源码介绍 html5米表源码PHP域名销售程序安装方法&#xff1a; 本站已测试,各项功能正常,功能易用,不复杂,非常适合个人米表使用 1、所有文件传至网站目录 2、浏览器执行http://你的访问网址/install 3、输入mysql帐号及密码信息&#xff0c;提交安装 源码截图 源码下载 …

华为od-C卷200分题目3 - 两个字符串间的最短路径问题

华为od-C卷200分题目3 - 两个字符串间的最短路径问题 题目描述 给定两个字符串&#xff0c;分别为字符串A与字符串B。 例如A字符串为ABCABBA&#xff0c;B字符串为CBABAC可以得到下图m*n的二维数组&#xff0c;定义原点为(0, 0)&#xff0c;终点为(m, n)&#xff0c;水平与垂…

【Android逆向】小白也能学会的一个小时破解某猫社区VIP会员

第二步&#xff1a;使用 dex2jar 将 classes.dex 转成 jar 文件 cmd到dex2jar文件夹目录&#xff0c;执行 d2j-dex2jar D://xxx/xxx/classes.dex 得到 jar 文件 静态分析 拿到源码后&#xff0c;首先我们需要找到应用的限制点&#xff0c;绕过App里面的判断。 然后分析源码&…