【JavaSE】实用类——String、日期等

目录

  • String类
    • 常用方法
      • String类的equals()方法
        • String中equals()源码展示
      • “==”和equals()有什么区别呢?
  • StringBuffer类
    • 常用构造方法
    • 常用方法
    • 代码示例
  • 面试题:String类、StringBuffer类和StringBuilder类的区别?
  • 日期类
    • Date类
    • Calendar类
      • 代码示例

String类

String s = new String(“Hello World”);   ?//创建了几个对象

答案是:两个,s和“Hello World”

String类是final修饰的,每次修改引用的值,都会创建一个新的对象出来

常用方法

在这里插入图片描述

	public static void main(String[] args) {String word = "HelloWorld!!!你好世界!!!";//1.返回word这个字符串第一个字符是什么?char firstCh = word.charAt(0);//1.返回word这个字符串最后一个字符是什么?char lastCh = word.charAt(word.length()-1);System.out.println("第一个字符是 : " + firstCh);System.out.println("最后一个字符是 : " + lastCh);System.out.println("---------------------------------------");String str = "Hello";//将world!!!拼接到这个字符串后面//String newStr = str.concat("world!!!");str += "world!!!";System.out.println(str);System.out.println("----------------------------------------");String code = "public static void main(String[] args){}";boolean flag = code.contains("static");System.out.println("是否存在static?" + flag);boolean flag2 = code.contains("z");System.out.println("是否存在字母z? " + flag2);System.out.println("----------------------------------------");String yanzhengCode = "sKdgF5";String input = "skdgf5";System.out.println(yanzhengCode.equalsIgnoreCase(input));System.out.println("----------------------------------------");String email = "18037678296@163.cn.com";int firstPointIndex = email.indexOf(".");int lastPointIndex = email.lastIndexOf(".");System.out.println("\".\"第一次出现的索引位置是:" + firstPointIndex + ",最后一次出现的索引位置是:" + lastPointIndex);int qqIndex = email.indexOf("qq");if(qqIndex < 0){System.out.println("这不是一个QQ邮箱,因为邮箱地址中没有\"qq\"这个字符串");}System.out.println("这个邮箱的长度是:" + email.length());}

在这里插入图片描述
在这里插入图片描述

public static void main(String[] args) {String uuid = UUID.randomUUID().toString();System.out.println("生成的唯一序列是:" + uuid);//将UUID中的-去掉//uuid = uuid.replace("-","^");uuid = uuid.replace("-","");System.out.println("替换后的UUID是:" + uuid);System.out.println("-----------------------------");String musicWords = "虞美人 /蒋捷 少年听雨歌楼上 红烛昏罗帐 中年听雨客舟中 江阔云低 断雁叫西风 而今听雨僧庐下 鬓已星星也 悲欢离合总无情 一任阶前 点滴到天明";String[] words = musicWords.split(" ");for (String word : words) {System.out.println(word);}System.out.println("-----------------------------");String str = "四十年来家国,三千里地山河。凤阁龙楼连霄汉,玉树琼枝作烟罗。几曾识干戈?";String lastWord = str.substring(str.lastIndexOf("。")+1);System.out.println("最后一句诗是:" + lastWord);String secoundWord = str.substring(str.indexOf("。")+1,str.lastIndexOf("。")+1);System.out.println("第二句是:" + secoundWord);System.out.println("-----------------------------");String s = "HelloWorld!!!";char[] chars = s.toCharArray();for (char aChar : chars) {System.out.print(aChar + " ");}System.out.println();System.out.println("-----------------------------");String t = "kjdsfSDLKSG41654";System.out.println(t.toLowerCase());System.out.println(t.toUpperCase());System.out.println("-----------------------------");String u = "      asfkjsdgjh   asda  a as     ";System.out.println("字符串的长度是:" + u.length());System.out.println("去掉前后空格后的长度是:" + u.trim().length());}

String类的equals()方法

equals()方法比较原理(重写了Object类的equals()方法):equals():检查组成字符串内容的字符是否完全一致
在这里插入图片描述

String中equals()源码展示
	public boolean equals(Object anObject) {if (this == anObject) {return true;}if (anObject instanceof String) {String anotherString = (String)anObject;int n = value.length;if (n == anotherString.value.length) {char v1[] = value;char v2[] = anotherString.value;int i = 0;while (n-- != 0) {if (v1[i] != v2[i])return false;i++;}return true;}}return false;}

“==”和equals()有什么区别呢?

==:判断两个字符串在内存中的地址,即判断是否是同一个字符串对象
equals()是Object中的方法本身也是判断两个字符串在内存中的地址是否是同一个的,但是可以通过重写Object中的equals()方法,比如String重写的equals()方法可以重写为判断两个对象的字符串内容是否相同

StringBuffer类

  • StringBuffer类位于java.util包中,是String类的增强类。
  • 对字符串频繁修改时,使用StringBuffer类可以大大提高程序执行效率

常用构造方法

StringBuffer strb = new StringBuffer();
StringBuffer strb = new StringBuffer(“abc”);

常用方法

  • strb.toString(); //将StringBuffer类型的字符串转化为String类型的对象返回
  • strb.append(Object obj); //将参数连接到字符串后并返回
  • strb.insert (int offset, Object obj); //将参数插入到字符串指定位置后并返回

代码示例

	public static void main(String[] args) {String s = "HelloWorld,Hello";StringBuffer sb = new StringBuffer(s);sb.append("KGC");sb.append(",");sb.append("Hello");sb.append("KD50");sb.append("!!!");System.out.println(sb.toString());sb.insert("HelloWorld".length(),"!!!");System.out.println(sb.toString());/*sb.replace(sb.lastIndexOf("!!!"),sb.lastIndexOf("!!!")+3,"...");System.out.println(sb.toString());*//* sb.delete(sb.lastIndexOf("!!!"),sb.lastIndexOf("!!!")+3);System.out.println(sb.toString());*//*sb.delete("elloWorld!!!,".length()+1,"HelloWorld!!!,HelloKGC".length());System.out.println(sb.toString());*/System.out.println("---------------------------");StringBuffer money = new StringBuffer("9876543210");for (int i = money.length()-3;i>0;i-=3){money.insert(i,",");}System.out.println(money.toString());//reverse()反转字符串}

面试题:String类、StringBuffer类和StringBuilder类的区别?

  1. String是不可变对象,在每次对String类型进行改变时其实都等同于生成了一个新的String对象,然后再指向新的String对象。经常改变内容的字符串最好不要使用String,因为每次生成对象都会对系统性能产生影响。
  2. StringBuffer是可变的字符串,在每次对StringBuffer对象进行改变时,会对StringBuffer对象本身进行操作,而不是生成新的对象。字符串经常改变的情况可使用StringBuffer,执行效率要比String类高
  3. JDK5.0后提供了StringBuilder,等价StringBuffer 。
    StringBuilder与StringBuffer的区别:StringBuffer类是线程安全的, StringBuilder类是单线程,不提供同步,理论上效率更高

日期类

  1. java.util包中提供的和日期时间相关的类有Date类、Calendar类
  2. java.text包中提供将日期转换为文本的类有SimpleDateFormat类

Date类

//创建日期对象
Date date = new Date(); 
//定制日期格式
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy年MM月dd日 HH:mm:ss");
//调用方法将日期格式化为文本
String now = sdf.format(date);
System.out.println(now);

Calendar类

  • Calendar类是抽象类:用于设置和获取日期/时间数据的特定部分
  • Calendar类提供一些方法和静态字段来操作日历
    在这里插入图片描述
    在这里插入图片描述

代码示例

	public static void main(String[] args) {//创建Calendar对象Calendar calendar = Calendar.getInstance();System.out.println(calendar.get(Calendar.DAY_OF_WEEK));System.out.println(calendar.get(Calendar.DAY_OF_MONTH));System.out.println(calendar.get(Calendar.DAY_OF_YEAR));System.out.println(calendar.get(Calendar.WEEK_OF_MONTH));System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));System.out.println(calendar.get(Calendar.YEAR));System.out.println(calendar.get(Calendar.MONTH) + 1);System.out.println(calendar.get(Calendar.DATE));System.out.println(calendar.get(Calendar.HOUR));System.out.println(calendar.get(Calendar.MINUTE));System.out.println(calendar.get(Calendar.SECOND));}
	public static void main(String[] args) {Calendar calendar = Calendar.getInstance();calendar.set(2024,11,19);Date date = calendar.getTime();System.out.println(date);System.out.println("--------------------------");Calendar calendar2 = Calendar.getInstance();//calendar2.add(Calendar.MONTH,-1);//calendar2.add(Calendar.WEEK_OF_MONTH,-1);//calendar2.add(Calendar.DATE,-1);calendar2.add(Calendar.DATE,5);System.out.println(calendar2.getTime());System.out.println("--------------------------");long time = System.currentTimeMillis();System.out.println(time);}

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

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

相关文章

Redis学习------实战篇----2024/02/27

1.导入项目 2.基于Session实现登录 手机验证码完整实现 /*** 发送验证码* param phone* param session* return*/Overridepublic Result sendCode(String phone, HttpSession session) {//1.校验手机号if(RegexUtils.isPhoneInvalid(phone)){//2.如果不符合&#xff0c;返回错…

非常好!超齐全的故障诊断数据集及相关实验平台介绍

故障诊断数据集目录 一. 故障诊断数据集库介绍 二. 轴承故障诊断数据集 1.美国-凯斯西储大学轴承数据中心轴承数据集 2.SUDA试验台数据集 3.美国-机械故障预防技术学会MFPT 4.德国-帕德伯恩大学Paderborn轴承数据集 5.SDUST山东科技大学数据集 6.SEU东南大学轴承数据集 …

ARMv8-AArch64 的异常处理模型详解之异常处理详解(同步异常和异步异常的分析和处理)

这里写目录标题 一&#xff0c;同步异常的分析1.1 同步异常分析-异常链接寄存器ELR1.2 同步异常分析-异常综合寄存器ESR&#xff0c;Exception Syndrome Register1.3 同步异常分析-错误地址寄存器FAR,Fault Address Register 二&#xff0c; 同步异常的处理示例 Synchronous ex…

windows 11+docker desktop+grafana+influxDB+python写入

下载安装docker desktop 出现WSL相关的错误。WSL是一个linux内核的子系统&#xff0c;docker是基于linux内核的&#xff0c;所以运行docker需要WSL。 以管理员权限打开powershell&#xff0c;查看WSL状态 wsl --status 我遇到的错误是因为我关闭了windows的某些更新 执行上…

SAP Business Technology Platform (BTP)的架构理解

长期以来&#xff0c;我在与客户和伙伴的沟通交流中发现大家依然对SAP业务技术平台 - SAP Business Technology Platform (以下简称BTP)纯有各种疑惑&#xff0c;借此机会借助我原来作为SAP内部IT开发的经验和近期一年来在客户前线的经验&#xff0c;简要聊一下我对BTP的架构理…

工厂安全智能巡检机器人系统开发及其对您的价值体现

在工厂生产环境中&#xff0c;安全生产一直是业主、采购商以及中间商们十分关注的焦点。为了提升工厂生产线的安全性、效率和可追溯性&#xff0c;一款工厂安全智能巡检机器人系统应运而生&#xff0c;旨在为需求方带来全新的生产安全管理模式。 自动巡检增加效率 传统的工厂…

SD-WAN技术:优化国内外服务器访问的关键

在全球化的商业环境中&#xff0c;企业经常需要在国内访问国外的服务器。然而&#xff0c;由于地理位置和网络架构的限制&#xff0c;这种跨国访问往往会遇到速度慢、延迟高等问题。SD-WAN&#xff08;软件定义广域网&#xff09;技术的兴起&#xff0c;为企业提供了一种新的解…

大文件传输之udp如何传输大量数据

在数字化时代&#xff0c;对大文件传输的需求正以前所未有的速度增长。无论是个人用户还是企业&#xff0c;都急切寻求一种能够快速且稳定地处理大量数据的传输方法。UDP&#xff08;用户数据报协议&#xff09;以其无连接的特性和高效的数据传输能力&#xff0c;成为了大文件传…

C语言自定义数据类型(三)结构体指针

所谓结构体指针就是指向结构体变量的指针&#xff0c;一个结构体变量的起始地址就是这个结构体变量的指针。如果把一个结构体变量的起始地址存放在一个指针变量中&#xff0c;那么&#xff0c;这个指针变量就指向该结构体变量。 目录 一、指向结构体变量的指针 1.1举例说明 …

就业班 2401--2.26 Linux Day5--进程管理一

一、权限扩展 文件权限管理之&#xff1a; 隐藏权限防止root误删除 文件属性添加与查看 [rootlinux-server ~]# touch file1 file2 file3 1.查看文件属性 [rootlinux-server ~]# lsattr file1 file2 file3 ---------------- file1 ---------------- file2 ----------------…

【吴恩达·机器学习】第四章:详解神经网络:推理和训练

博主简介&#xff1a;努力学习的22级计算机科学与技术本科生一枚&#x1f338;博主主页&#xff1a; Yaoyao2024每日一言&#x1f33c;: 勇敢的人&#xff0c;不是不落泪的人&#xff0c;而是愿意含着泪继续奔跑的人。 ——《朗读者》 0、声明 本系列博客文章是博主本人根据吴…

RubyMine 2023:让Ruby编程变得更简单 mac/win版

JetBrains RubyMine 2023是一款专为Ruby开发者打造的强大集成开发环境&#xff08;IDE&#xff09;。这款工具集成了许多先进的功能&#xff0c;旨在提高Ruby编程的效率和生产力。 RubyMine 2023软件获取 RubyMine 2023的智能代码编辑器提供了丰富的代码补全和提示功能&#…

深度学习基础(三)循环神经网络(RNN)

之前的章节我们初步介绍了卷积神经网络&#xff08;CNN&#xff09;&#xff1a; 深度学习基础&#xff08;二&#xff09;卷积神经网络&#xff08;CNN&#xff09;-CSDN博客文章浏览阅读2次。卷积神经网络&#xff08;CNN&#xff09;的应用领域广泛&#xff0c;尤其在图像处…

Delphi 报错 Type androidx.collection.ArraySet is defined multiple times

Delphi 11 建立一个新的 Multi-Device Application 编译成app的时候报错 报错信息 [PAClient Error] Error: E7688 Unable to execute "E:\Program\Java\jdk1.8.0_301\bin\java.exe" -cp "e:\program\embarcadero\studio\22.0\bin\Android\r8-3.3.28.jar"…

git push提交后GitHub没有统计我的Contributions

我在家里的电脑上创建了一个仓库&#xff0c;然后在笔记本上录取下来并进行提交合并等操作&#xff0c;但是发现笔记本上提交的记录并没有被github记录&#xff0c;就是那个绿色的点没有 就是提交完之后 没有出现当天的绿色的点 通过git log 后发现&#xff0c;提交记录中存在…

【pytorch】常用代码

文章目录 条件与概率torch.tensor()torch.rand()torch.randn()torch.randint()torch.multinominal() 逻辑运算torch.argmax()torch.max()torch.sum()torch.tanh()torch.pow() 功能性操作 torch.nn.functionalF.normalize()F.elu()F.relu()F.softmax() 张量计算torch.zeros()tor…

Yolov8有效涨点:YOLOv8-AM,添加多种注意力模块提高检测精度,含代码,超详细

前言 2023 年&#xff0c;Ultralytics 推出了最新版本的 YOLO 模型。注意力机制是提高模型性能最热门的方法之一。 本次介绍的是YOLOv8-AM&#xff0c;它将注意力机制融入到原始的YOLOv8架构中。具体来说&#xff0c;我们分别采用四个注意力模块&#xff1a;卷积块注意力模块…

《猎冰》难以狂飙,2024年开年剧集没有爆款

从2022年开始&#xff0c;剧集开年一爆成为惯例。 这很大程度取决于当时的环境。由于疫情原因&#xff0c;更多用户选择在家娱乐&#xff0c;剧集成为了家人、朋友相处间最好的娱乐消费品。 优秀的剧集&#xff0c;在多人共同的认可下得以快速传播。 也因为此&#xff0c;20…

幻兽帕鲁服务器多少钱?有买过的吗?

幻兽帕鲁服务器多少钱&#xff1f;太卷了&#xff0c;降价到24元1个月&#xff0c;阿里云4核16G10M游戏服务器26元1个月、149元半年&#xff0c;腾讯云4核16G游戏服务器32元、312元一年&#xff0c;华为云26元&#xff0c;京东云主机也是26元起。云服务器吧yunfuwuqiba.com给大…

【VSCode】SSH Remote 通过跳板机连开发机提示“bash行1 powershell未找到命令”

需求背景 因为需要&#xff0c;在家我需要挂上公司VPN然后SSH连到跳板机&#xff0c;然后再从跳板机SSH进开发机。 问题背景 跳板机进开发机输入完密码显示 bash行1 powershell未找到命令VSCode SSH Remote跳板机配置请自行搜素其他文章config配置 注意其中ssh.exe地址请根据…