Java String函数的使用

文章目录

  • String
    • 字符串比较
    • 字符串查找
    • 转化
    • 字符串替换
    • 字符串拆分
    • 字符串截取(常用)
    • 字符串的不可变性

在这里插入图片描述

String

  1. str本来是字符串常量的引用,应该打印地址,但是编译器重写了toString方法,所以打印hello
    在这里插入图片描述
  2. String 的构造方法
public class test {public static void main(String[] args) {// 用常量字符串构造String s1 = "hello";System.out.println(s1);// 用字符数组构造char[] array = new char[]{'a','b','c'};String s2 = new String(array);System.out.println(s2);char[] array1 = new char[]{'a','b','c'};String s4 = new String(array,0,2);// 从0位置后拿2个字符System.out.println(s4);// 直接newSting对象构造String s3 = new String("hello");System.out.println(s3);}
}
  1. String对象在内存中的情况

在这里插入图片描述

在这里插入图片描述
4. 空指针异常和空字符串,isEmpty()判断是否为空字符串

在这里插入图片描述

字符串比较

  1. s1 == s2 比较地址
  2. s1.equals(s2)比较是否相等,返回true或者false
  3. s1.compareTo(s2)比较大小
  4. s1.compareToIgonreCase(s2)忽略大小写比较
public class test {public static void main(String[] args) {String s1 = new String("hello");String s2 = new String("Hello");System.out.println(s1 == s2);// 不等于,s1和s2表示对象的引用都存的是地址System.out.println(s1.equals(s2));System.out.println(s1.compareTo(s2));// s1 大于 s2 返回正数// s1 小于 s2 返回负数// s1 等于 s2 返回0System.out.println(s1.compareToIgnoreCase(s2));// 忽略大小写比较}
}

字符串查找

  1. char charAt(int index),返回数组中下标对应的字符
public static void main(String[] args) {String s1 = new String("hello");char ch = s1.charAt(1);System.out.println(ch);// e}
  1. int indexOf(char ch),返回第一次出现ch字符的下标
String s2 = new String("hello");int index = s1.indexOf('l');System.out.println(index);// 2
  1. int indexOf(char ch,int k),k表示下标,从指定位置开始查找
String s2 = new String("hello");int index = s1.indexOf('l',3);System.out.println(index);// 3
  1. int indexOf(String s),可以查找子串在主串中出现的位置,如果没有找到返回-1
String s3 = "ababcdeabcf";int index = s3.indexOf("abc");System.out.println(index);// 2int index1 = s3.indexOf("abc",3);System.out.println(index1);// 7 
  1. int lastIndexOf(String s),倒着往前找,返回第一个找到的下标
 String s3 = "ababcabcd";int index = s3.lastIndexOf("abc");System.out.println(index);// 5int index1 = s3.lastIndexOf("abc",4);System.out.println(index1);// 2// 从4下标位置倒着往前找

转化

  1. 数字和字符串之间的转化
 String s2 = String.valueOf(new Student("zhangsan",20));System.out.println(s2);String s3 = String.valueOf(123);System.out.println(s3);String s4 = String.valueOf(123.34);System.out.println(s4);String s5 = String.valueOf(true);System.out.println(s5);// true

在这里插入图片描述
2. 字符串转数字

 int a = Integer.parseInt("190");System.out.println(a);int b = Integer.parseInt("19.9");// 错误,给的要是整数的字符串

在这里插入图片描述

  1. 大小写转化

小写转大写:toUpperCase
转变为大写不是在原有字符串的基础上转换,而是转变为大写是一个新的对象,不会改变原有的字符串

String s = "hello";String ret = s.toUpperCase();System.out.println(ret);

大写转小写

String s = "HEllo";
String ret = s.toLowerCase();System.out.println(ret);// hello
  1. 字符串转为数组
String s = "hello";char[] ret = s.toCharArray();System.out.println(Arrays.toString(ret));// [h,e,l,l,o]

数组转为字符串

char[] ret = {'a','b','c'};String s = new String(ret);System.out.println(s);// abc
  1. 格式转换
String s = String.format("%d-%d-%d",2019,9,20);
System.out.println(s);// 2019-9-20

字符串替换

  1. 替换字符串

在这里插入图片描述

  1. 替换单个字符

在这里插入图片描述
3. 替换第一个ab

在这里插入图片描述
4. 把所有的ab都替换为123

在这里插入图片描述

字符串拆分

  1. s.split()以这里面的字符串为标准分割
public static void main(String[] args) {String s = "hello world k";String[] array = s.split(" ");System.out.println(Arrays.toString(array));// [hello,world,k]String s1 = "hello world k";String[] array1 = s.split(" ",2);// 以空格分割最多分成两组System.out.println(Arrays.toString(array1));// [hello, world k]}
  1. 特殊的情况,使用转义字符

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

多次分割

在这里插入图片描述

字符串截取(常用)

  1. substring(a,b) [a,b) a和b均为下标
String str = "hello";
String ret = str.substring(0,3);// hel
  1. 给一个参数,会把后面的全不截取
String str = "hello";
String ret = str.substring(0);// hello
  1. trim(),去掉字符串的左右空格,中间的空格不可去掉

在这里插入图片描述

字符串的不可变性

  1. 字符串中的value[] 数组是被private修饰的,也没有提供get方法,在类外是无法拿到的,就无法修改该数组了
  2. 而被final修饰的,只是表明它是常量了,它的引用只能指向一个对象,不能被改变成指向别的对象
  3. 被final修饰的不能被继承
final int[] array = {1,2,3};
// array = new int[]{1,2};
// 不能改变array的指向了 
array[0] = 2;// 可被修改

在这里插入图片描述

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

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

相关文章

Oracle 11G RAC重启系统异常

vmware安装centos7环境部署Oracle RAC (11.2.0.4) 部署时所有资源情况都是正常的,关机重启虚拟机后集群资源状态异常,请教CSDN大佬 – 部署规划 域名地址备注rac16192.168.31.16rac17192.168.31.17rac16vip192.168.31.26viprac17vip192.168.31.27vip…

吉林省CCPC与全国邀请赛(东北地区赛)游记

总述: 本次赛段共获得一银(吉林省赛)、一铜(东北地区赛)、一铁(全国邀请赛的成绩)。总体成绩跟校内赛的情况相比队伍状态与发挥水准都有提升),但也体现出很多不足&#x…

「Python教案」循环语句的使用

课程目标 1.知识目标 能使用for循环和while循环设计程序。能使用循环控制语句,break、continue、else设计程序。能使用循环实际问题。 2.能力目标 能根据需求合适的选择循环结构。能对嵌套循环代码进行调试和优化。能利用循环语句设计&am…

OpenCV---findCountours

一、基本概念与用途 findContours是OpenCV中用于在二值图像中查找轮廓的核心函数。轮廓作为连续的点集,能够精确勾勒出物体的边界,广泛应用于目标检测、形状分析、图像分割等领域。 函数核心价值 目标检测:通过轮廓定位图像中的物体&#…

20250523-BUG:无法加载“GameLib/Framework.h“头文件(已解决)

BUG:无法加载"GameLib/Framework.h"头文件(已解决) 最近在打开新的C项目时报了这个错,我是按照以下步骤来排除的BUG,希望对您有所帮助~ 检查【C/C】-【附加包含目录】中的路径有无问题,一般需要加…

商品条形码查询接口如何用C#进行调用?

一、什么是商品条码查询接口? 1974年6月26日,美国俄亥俄州的一家超市首次使用商品条码完成结算,标志着商品条码正式进入商业应用领域。这项技术通过自动识别和数据采集,极大提升了零售行业的作业效率,减少了人工录入错…

SD07_NVM的安装及相关操作

以下是在 Windows 系统 上使用 NVM(Node Version Manager) 管理多个 Node.js 版本的详细步骤,从零开始操作: 一、准备工作 卸载旧版 Node.js 打开 控制面板 → 程序和功能,找到已安装的 Node.js 和 npm,彻底…

OSI 深度安全防御体系架构深度剖析

文章目录 前言什么是 OSI 深度安全防御体系架构各层的安全防御措施物理层数据链路层网络层传输层会话层表示层应用层 OSI 深度安全防御体系架构的优势全方位防护深度防御灵活性和可扩展性 总结 前言 大家好,我是沛哥儿。今天咱们来深入探讨一下 OSI 深度安全防御体…

大模型应用:开发移动端页面个人中心页面提示词

角色 你是一个移动端web页面开发专家,擅长开发移动端页面,使用原生web技术(html,css,js),开发的页面针对手机移动端友好 技术栈 使用基础的Html,CSS,JavaScript方案实现&#xff…

从零到一:影刀RPA学习者的破局之路

1. 学习目标与预期差距分析 1.1 官方课程学习目标梳理 影刀RPA的官方课程旨在帮助学习者掌握RPA(机器人流程自动化)的基本概念、操作技能和常见应用场景。课程内容通常包括: RPA基础理论:介绍RPA的定义、优势、发展历程以及与其…

计算机组成与体系结构:硬盘驱动器(Hard Disk Drives)

目录 💽 硬盘驱动器(HDD):传统的固定辅助存储设备 什么是硬盘驱动器? 硬盘的工作原理 HDD 的物理结构 Disk Pack(盘组) Tracks(磁道) Cylinders(柱面&…

GitCode镜像仓库批量下载开发实录

GitCode作为国内领先的开源代码托管平台,其镜像仓库批量下载功能对开发者生态建设与开源协作效率提升具有关键价值。本文基于企业级代码资产管理需求,系统记录从需求分析到生产部署的全周期开发实践。内容覆盖镜像仓库同步机制设计、分布式任务调度优化、…

基线配置管理:为什么它对网络稳定性至关重要

什么是基线配置(Baseline Configuration) 基线配置(Baseline Configuration)是经过批准的标准化主设置,代表所有设备应遵循的安全、合规且运行稳定的配置基准,可作为评估变更、偏差或未授权修改的参考基准…

AJAX get请求如何提交数据呢?

在 AJAX 中使用 GET 请求提交数据,主要通过 在 URL 后拼接查询参数 的方式实现,具体步骤如下: 1.构造带参数的 URL 将数据以 键值 的形式拼接在 URL 后,多个参数间用 & 连接。例如: var url "https://exa…

基于FashionMnist数据集的自监督学习(对比式自监督学习SimCLR算法)

目录 一,对比式自监督学习 1.1 简介 1.2 常见算法 1.2.1 SimCLR (2020) 1.2.2 MoCo (2020) 1.2.3 BYOL (2021) 1.2.4 SimSiam (2021) 1.2.5 CLIP (2021) 1.2.6 DINO (2021) 1.2.7 SwAV (2020) 二,代码逻辑分析 2.1 整体目标与流程 2.2 数据…

Linux:基础指令与内涵理解(下)与权限

1.mv 作用:将文件移动、文件重命名 语法: mv (选项) 源文件/目录 目标文件/目录 (1)将文件/目录移动到当前目录的新文件/目录(也就是重命名操作) 这里我们mv了test.txt文件到当前目录下当前并不存在的ln.tx…

卷积神经网络(CNN)入门学习笔记

什么是 CNN? CNN,全称 卷积神经网络(Convolutional Neural Network),是一种专门用来处理图片、语音、文本等结构化数据的神经网络。 它模仿人眼识别图像的方式: 从局部到整体,一步步提取特征&a…

c#基础07(调试与异常捕捉)

文章目录 调试与异常捕捉调试异常处理C#中的异常类异常处理抛出对象 调试与异常捕捉 很多时间,写代码不能一撸到底,中间都是经历过无数次的调试,才能正常正确的运行起来。.Net调试有很多方法和技巧。 调试 在C#中程序调试主要指在Visual S…

一种比较精简的协议

链接地址为:ctLink: 一个比较精简的支持C/C的嵌入式通信的中间协议。 本文采用的协议格式如下 *帧头 uint8_t 起始字节:0XAF\ *协议版本 uint8_t 使用的协议版本号:当前为0X01\ *负载长度 uint8_t 数据段内容长…

【windwos】文本编辑器Notepad++ 替代品Notepad--

一、N和N--对比介绍 曾经备受推崇的「Notepad」曾是Windows上的经典代码编辑器。然而,作者的一些政治言论已经让它被广大中国用户抛弃。 一个名为「Notepad--」的新编辑器,也是开源免费,功能和实用性也在尽可能接近。与此同时,「N…