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

文章目录

  • 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++;}@Overridepublic 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;}@Overridepublic 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.389xabs = Math.ceil(xabs);System.out.println("xabs = " + xabs); // 2.0xabs = Math.floor(1.13);System.out.println("xabs = " + xabs); // 1.0xabs = Math.round(5.31);System.out.println("xabs = " + xabs); // 5.0}

在这里插入图片描述

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

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

相关文章

PIL实现图片是否可读

对图像数据进行清洗过程中&#xff0c;为了判断图像文件是否可读&#xff0c;可以调用PIL&#xff08;Pillow&#xff09;包的 Image 类。可以使用 Image 类的 open 方法&#xff0c;该方法会尝试打开图像文件并返回一个 Image 对象。如果文件不可读&#xff0c;该方法将抛出一…

RHEL 8下Oracle Database 23ai 安装与配置

前言 随着AI的加入&#xff0c;Oracle正式将Oracle23c改名为Oracle23ai&#xff0c;并且将次版本数据库作为一个长期支持的版本&#xff0c;也意味着Oracle数据库正式从Cloud进入AI时代&#xff0c;本文主要介绍Oracle Database 23ai Free的安装与配置。 安装方式 Oracle Da…

linux下进行epoll的简单使用

先做一个简单实例&#xff1a; #include <arpa/inet.h> #include <assert.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <sys/epoll.h> #include <sys/socket.h> #include <unistd.h>#includ…

C语言 | Leetcode C语言题解之第187题重复的DNA序列

题目&#xff1a; 题解&#xff1a; #define MAXSIZE 769/* 选取一个质数即可 */ typedef struct Node {char string[101];int index;struct Node *next; //保存链表表头 } List;typedef struct {List *hashHead[MAXSIZE];//定义哈希数组的大小 } MyHashMap;List * …

代码随想录算法训练营day30|跳跃游戏、

55.跳跃游戏 这道题目的重点在于&#xff1a; 1.不管每次能跳多远&#xff0c;只管跳跃范围的覆盖范围&#xff0c;如果最后能覆盖到最后一个元素&#xff0c;则可以到达最后一个下标 2.覆盖的范围是随着i的遍历而不停增加的&#xff0c;相当于“骑驴找马”&#xff0c;每个数…

StackOverFlowError常见原因及解决方法总结

StackOverFlowError常见原因及解决方法总结 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来探讨一下 Java 中一个常见的错误&#xff1a;StackOverFl…

使用自定义的shiro密码匹配器CredentialsMatcher完成密码验证

今天突然想研究一下shiro怎么匹配用户的密码。 我们使用shiro的API登录时&#xff0c;会先创建一个令牌对象&#xff0c;而经常用的令牌对象是UsernamePasswordToken&#xff0c;把用户输入的用户名和密码作为参数构建一个UsernamePasswordToken&#xff0c;然后通过Subject.l…

MM-LLM:CogVLM解读

在图文多模态模型中&#xff0c;范式是图像的编码器、文本编码器、模态融合器。也就是不同模态特征抽取加模态对齐。 这部分可以看李沐的精讲 在大模型里的范式在也是如此&#xff0c;目前的工作大部分都专注于怎么拉齐不同模态。 该论文的动机&#xff08;背景&#xff09;&…

nlp基础-文本预处理及循环神经网络

1 认识文本预处理 1 文本预处理及其作用 定义&#xff1a;文本送给模型之前&#xff0c;提前要做的工作 作用&#xff1a;指导模型超参数的选择 、提升模型的评估指标 举个例子&#xff1a; 思路常识&#xff0c;打造成 X Y关于Y&#xff1a;10分类标签是否均衡关于X&#xf…

代码随想录训练营Day44

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、零钱兑换二、完全平方数三、单词拆分 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 今天是跟着代码随想录刷题的第44天&#xff…

LeetCode:经典题之1491、896 题解与延伸

系列目录 88.合并两个有序数组 52.螺旋数组 567.字符串的排列 643.子数组最大平均数 150.逆波兰表达式 61.旋转链表 160.相交链表 83.删除排序链表中的重复元素 389.找不同 1491.去掉最低工资和最高工资后的工资平均值 896.单调序列 206.反转链表 92.反转链表II 141.环形链表 …

Oracle自动创建分区

一、需要分区的表 create table PARTITION_TABLE_INFO ( table_name VARCHAR2(500), comments VARCHAR2(500), enable VARCHAR2(500) default Y ) / comment on table PARTITION_TABLE_INFOis 分区维护表 / comment on column PARTITION_TABLE_INFO.table_name is …

Mybatis plus:Wrapper接口

一、介绍 MyBatis-Plus 提供了一套强大的条件构造器&#xff08;Wrapper&#xff09;&#xff0c;用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件&#xff0c;无需编写繁琐的 SQL 语句&#xff0c;从而提高开发效率并减少 SQL 注入的风险。 …

springCloud组件专题(四) --- sentinel

前言 限流&#xff0c;熔断降级概念 限流&#xff1a;顾名思义&#xff0c;就是对一个资源&#xff08;服务或者接口都可以算资源&#xff09;的访问进行限制。简单来说就是限制单位时间内允许资源被访问的次数。常见的算法就是令牌桶算法。 降级&#xff1a;降级其实是一种资源…

IBM IMM1服务器硬件监控指标解读

在复杂多变的IT环境中&#xff0c;服务器的稳定运行对于保障业务的连续性至关重要。IBM IMM1&#xff08;Integrated Management Module 1&#xff09;作为IBM服务器的一个重要组件&#xff0c;提供了强大的远程管理和监控功能。 监控易作为一款专业的IT基础设施监控软件&#…

实际中路由器故障处理方法

1.路由器的部分功能无法实现 &#xff08;1&#xff09;故障现象&#xff1a;路由器配置完全正确&#xff0c;但是有些功能却不能实现。 &#xff08;2&#xff09;故障原因&#xff1a;如果是在确保路由器配置正确的前提下&#xff0c;那么问题应该就在路由器的软件系统上。 &…

【鸿蒙】ERROR_GET_BUNDLE_INSTALLER_FAILED

错误信息 [ERROR_GET_BUNDLE_INSTALLER_FAILED] Troubleshooting guide $ hdc file send D:\Huawei\devEcoProjects\entry\build\default\outputs\default\entry-default-unsigned.hap /sdcard/e8a215ea7be1444197e6a58ebda7721f/entry-default-unsigned.hap Error while Depl…

26.3 Django路由层

1. 路由作用 在Django中, URL配置(通常称为URLconf)是定义网站结构的基础, 它充当着Django所支撑网站的目录. URLconf是一个映射表, 用于将URL模式(patterns)映射到Python的视图函数或类视图上. 这种映射机制是Django处理HTTP请求的基础, 它决定了当客户端发送请求时, Django如…

什么是DND网络?

DND网络通常指的是“无人机网络”&#xff08;Drone Network&#xff09;&#xff0c;它是通过多个无人机&#xff08;Drones&#xff09;之间的相互连接和通信形成的网络系统。无人机网络是一种特殊类型的无线自组织网络&#xff08;Wireless Ad-hoc Network&#xff09;&…

Java中的线程安全与同步技术

Java中的线程安全与同步技术 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨Java中的线程安全问题以及如何利用同步技术来保证多线程环境下的…