java【String类的常用方法】

news2024/11/25 0:57:43

String类

  • String类的常用方法
    • 1 字符串的构造方法
    • 2 String对象的比较
    • 3 字符串查找
    • 4 字符串与其他类型的转换
      • 4.1 字符串和数值互相转换
      • 4.2 大小写转换
      • 4.3 字符串转数组
      • 4.4 字符串格式化
    • 5 字符串的替换
    • 6 字符串的截取操作
    • 7 字符串的拆分
    • 8 字符串去除空格trim()方法

String类的常用方法

1 字符串的构造方法

字符串仍然是类,字符串对象的产生有如下四种方式:

  • 直接赋值
    String类独有:“ ” 字符串常量,每个字符串常量其实都是一个字符串对象
String str="abc";
  • 通过字符串的构造方法产生字符串对象
String str1=new String("abc");
  • 字符数组转为字符类对象
    任何一门高级语言,字符串的内部其实都是字符数组
char[] data={'a','b','c'};
String str2=new String(data);
  • 调用字符串的静态方法valueOf
String str3=String.valueOf("abc");

2 String对象的比较

(1)==操作符比较的是两个字符串对象是否指向相同的地址
(2)equals方法判断两个字符串对象内容是否相同。
按照Unicode编码将字符逐个比较,当两个字符串的字符数组对应的内容完全相同,equals才返回true(区分大小写的比较)。equalssIngoreCase方法不区分大小写。
(3)compareTo方法进行两个字符串的大小比较
a. 先按照两个字符串对应的字符进行编码比较,若碰到第一个不相等的字符,直接返回编码差值。
b. 若前k个字符完全相等(k是两个字符串中的最小值),返回值为两个字符串的长度差。
c.compareToIngoreCase()不区分大小写。

3 字符串查找

字符串的查找,本质上就是在内部的字符数组上进行遍历查找。

  • char charAt(int index):返回字符串上指定索引位置的字符,注意索引的合法性[0,n)
    eg:** 定义一个方法,判断传入的字符是否是由纯数字组成**?
    思路:循环遍历+charAt()取出字符判断,如果字符‘0’<a<'9',则为数字字符。
    character.isDigit();方法也可以判断是否是数字。
    代码:
 public static boolean isNum(String str)
    {
        for (int i = 0; i < str.length(); i++) {
            char c=str.charAt(i);
//            if(c<'0'||c>'9')
//            {
//                return false;
//            }
		//JDk,包装类Character判断是否是纯数字
            if(Character.isDigit(c))
            {
                return false;
            }
        }
        return true;
    }
  • boolean contains(String regex):查找当前字符串中是否包含指定格式的字符串regex
    contains方法其实就是根据indexOf方法的返回值来实现的。
    从前往后找:
    int indexOf(int ch);返回ch第一次出现的位置,没有返回-1
    int indexOf(int ch,int fromIndex);从fromIndex位置开始找ch第一次出现的位置,没有返回-1
    int indexOf(String str);返回str第一次出现的位置,没有返回-1
    int indexOf(String str,int fromIndex);从fromIndex位置开始找str第一次出现的位置,没有返回-1
    从后往前找:int lastIndexOf();

4 字符串与其他类型的转换

4.1 字符串和数值互相转换

无论什么类型转为字符串对象,统一推荐使用String.valueOf(任意类型),当传入的是自定义类型时,默认会调用toString进行转换,要求我们在自定义类型中覆写toString方法。

//将任意的数值转换字符串,采用字符串的几种构造方式,推荐采用字符串的valueOf方法
//int-->str
String str=String.valueOf(1234);
//double->str
String str1=String.valueOf(12.34);
//boolean
String str2=String.valueOf(false);
//自定义类型转为字符串,调用toString方法(需要覆写)
String str3=String.valueOf(new Student("66",1));

将字符串对象转为相应的基本类型:使用各个包装类的parseXXX方法来进行转换,这个转换当字符串中出现非数字时会报错。

        int a=Integer.parseInt(str);
        double b=Double.parseDouble(str1);
        boolean c=Boolean.parseBoolean(str2);
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

在这里插入图片描述

只要不是合法的布尔值,统一都会转为false

在这里插入图片描述

4.2 大小写转换

对应英文,不包含中文

public static void lowerOrUpper()
    {
        String s1="hello";
        String s2="HELLO";
        //转大写
        System.out.println(s1.toUpperCase());
        //转小写
        System.out.println(s2.toLowerCase());
    }

4.3 字符串转数组

1. 字符串转字符数组:str–>char[ ]
方法:toCharArray()

public static void str2Arr()
    {
        String str="hello";
        char[] c=str.toCharArray();
        for (int i = 0; i < c.length; i++) {
            System.out.print(c[i]+" ");
        }
    }

2. 字符串转字节数组:str–>byte[ ]
方法:getByte() 按照当前系统默认编码转为字节数组
当进行网络编程或者文件IO操作,需要将字符串序列化为字节流

public static void str2Arr()
    {
        String str="hello";
		//默认UTF-8
        byte[] ch=str.getBytes();
        //传入编码规则
        byte[] ch=str.getBytes(StandardCharsets.UTF-8);
        for (int i = 0; i < ch.length; i++) {
            System.out.print(ch[i]+" ");
        }
    }

在这里插入图片描述

编码:将任意字符按照指定的规则转为数字就称为编码
比较常用的编码规则:
ASCII:专门针对英文字母的编码,‘a’–>97,不管哪种编码格式,针对英文字母的转换都会采用ASCII的转换规则
GBK:专门针对中文的编码,包含繁体中文,一个中文对应两个字节
GB2312:只包含简体中文
UTF-8:世界上所有语言都可以用UTF-8来得到转换,一个中文字符转为三个字节

byte[] ch=str1.getBytes(StandardCharsets.UTF_8);

4.4 字符串格式化

类似printf的格式化输出,只不过此时不输出,只是将字符串按照指定格式转换:String.format(格式);

String str=String.format("%d-%d-%02d",2022,11,02);
System.out.println(str);

5 字符串的替换

String repalaceAll(String regex,String replacecment):替换所有的指定内容

String replaceFirst(String regex,String replacement):替换首个内容

6 字符串的截取操作

String substring(int beginIndex):从指定索引截取到结尾[start,end)

String substring(int index,int endIndex):截取部分内容[start,end)

	//传入任意单词将其首字母转为大写
    public static String firstUpperCase(String str)
    {
        //拿到首字母,将其转为大写之后和其他字符串进行拼接
        return str.substring(0,1).toUpperCase()+str.substring(1);
    }

7 字符串的拆分

String[] spilt(String regex):将字符串全部拆分(按照regex的格式进行拆分)
String[] spilt(String regex,int limit):将字符串以指定的格式,拆分为limit组(从头开始拆分到限定组后结束拆分)
举例:拆分一个IP地址,根据IP地址来判断用户的区域

String str="132.168.1.1";
//String[] ret=str.spilt(".");
String[] ret=str.spilt("\\.");
for(String s:ret)
{
System.out.println(s+" ");
}

结果无输出,因为操作符在Java中属于特殊字符。例如**引用操作符此类的字符都需要进行转义\ **

8 字符串去除空格trim()方法

默认只能去掉字符串左右空格,中间的空格保留

“ hello world ”=>"hello world"

使用replaceAll()将所有空格去除

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

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

相关文章

费报只是小 case!电子影像系统,工作效率up无限

在日常工作中,我发现许多朋友对电子影像系统存有一个错误认知,“电子影像系统,我了解,就是用来做费用报销的吧”。 但事实上,电子影像系统的实用价值远非这样,它可以解决企业许多业务场景中的难点。今天,让我们一起来探讨电子影像系统,希望能对大家在企业数字化改革中带来更多帮…

spring security oauth2学习 -- 快速入门

1.Oauth2认证协议 简单理解&#xff1a; OAuth2是目前最流行的授权协议&#xff0c;用来授权第三方应用&#xff0c;获取用户数据。 1.1 流程 客户端通过认证和授权&#xff0c;向资源服务器去访问资源。 其中&#xff0c;授权和认证都需要在授权服务器&#xff0c;由资源拥…

【Java】parallelStream().forEach() 的踩坑日记

文章目录 前言踩坑日记刨根问底解决方案小结 前言 最近一直在开发项目中的新需求&#xff0c;其中有一个需求是“解析文件&#xff08;.txt文件&#xff0c;一行就是一条数据&#xff09;中的数据并进行入库操作”。其实这个需求也很简单&#xff0c;无非就是将文件中每一行数…

架构师必须掌握的架构设计原则

如果一个架构或设计原则已经存在 15 年&#xff0c;例如单一职责和依赖倒置原则&#xff0c;我可以预期它还有 15 年甚至更久的生命期。原则是比具体技术更抽象&#xff0c;更接近事物本质&#xff0c;也更经得起时间考验的东西。这些原则沉淀在架构师的脑海中&#xff0c;最终…

彻底理解 linux 的内存回收

本文试图用最浅显的语言说明以下问题&#xff1a; 1、free 命令中的buffer/cache 是什么意思&#xff1f; 2、内存回收的机制是什么&#xff1f; 3、内存回收的门限是什么&#xff1f;也就是什么时候进行回收&#xff1f; 4、如何手动清除cache&#xff1f; 1、free 命令中的bu…

【高危】Apache NiFi H2驱动存在代码注入漏洞

漏洞描述 Apache NiFi 是一个开源的数据流处理和自动化工具&#xff0c;DBCPConnectionPool 和 HikariCPConnectionPool 是两个控制器服务&#xff0c;用于提供对数据库的连接池管理功能。 Apache NiFi 受影响版本&#xff0c;由于 DBCPConnectionPool 和 HikariCPConnectio…

景点景区门票购买核销宴会活动报名公众号系统开发

景点景区门票购买核销宴会活动报名公众号系统开发 功能特性 1.活动管理 可以新建一场或多场活动&#xff0c;管理每一场活动&#xff1b;与此同时&#xff0c;可以添加多张收费或免费门票&#xff0c;满足特定的需求&#xff1b;填写举办城市后&#xff0c;客户可通过定位服务&…

Vue + Axios全局接口防抖、节流封装实现,让你前端开发更高效

你是否有过这样的经历&#xff0c;每当你在前端开发中使用 Ajax 进行数据请求时&#xff0c;往往因为一些错误操作导致页面不断地发送请求&#xff0c;甚至导致了系统崩溃&#xff1f;为了解决这个问题&#xff0c;我们需要对接口进行防抖和节流处理。 本文将介绍如何使用 Vue …

Windows BAT脚本指令总结和笔记

最近在工作的项目工程中遇到了各式各样的bat脚本&#xff0c;故总结和记录下所遇到的指令&#xff1b; 文章目录 1 echo off2 REF3 SET4 %~dp05 %~nx06 CALL7 pushd8 rmdir 1 echo off echo off的意思是在批处理运行命令的时候不会一条一条的显示执行的命令&#xff0c;与之相…

香港Web3欲戴王冠,银行如何承受合规之重?

前言 6月19日&#xff0c;据明报报道&#xff0c;香港金融管理局&#xff08;HKMA&#xff09;总裁余伟文针对虚拟资产交易平台在香港银行开户难问题表示&#xff0c;一向有与香港银行有交流&#xff0c;“交流时是否有压力则大家感觉不一”。上周四&#xff0c;HKMA向汇丰银行…

vulhub-struts2-S2-005 远程代码执行漏洞复现

漏洞描述 s2-005漏洞的起源源于S2-003(受影响版本: 低于Struts 2.0.12)&#xff0c;struts2会将http的每个参数名解析为OGNL语句执行(可理解为java代码)。OGNL表达式通过#来访问struts的对象&#xff0c;struts框架通过过滤#字符防止安全问题&#xff0c;然而通过unicode编码(…

优维低代码实践:面包屑配置以及菜单配置

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 优维…

Pyinstaller打包Sklearn(即scikit-learn)+Pyqt5代码报错,程序无法正常运行

前言 在网上看了大部分解决办法都不能解决我的问题&#xff0c;后面自己摸索之后&#xff0c;解决问题&#xff0c;记录如下。 提供一篇大佬文章&#xff0c;一般能解决大部分问题&#xff1a; https://blog.csdn.net/u012219045/article/details/115397646 建议先看我的文章…

Java复习0619

关键字: static Static&#xff1a;静态的&#xff0c;随着类的加载而加载、执行。static用来修饰: 属性、方法、代码块、内部类熟悉: static修饰的类变量、类方法与不使用static修饰的区别。 类变量: 类的生命周期内&#xff0c;只有一个。被类的多个实例共享。 掌握: 我们遇…

企业备份和恢复软件推荐

数据备份是在发生灾难或事故时通过将数据从一个位置复制到另一个位置来保护数据的过程。数据是任何组织的生命线&#xff0c;丢失数据会导致严重损坏并中断业务运营。96% 的用户至少经历过数据丢失的主要原因之一&#xff1a;人为错误、硬盘驱动器故障、断电、火灾和自然灾害。…

ES(Elasticsearch)和Kibana(Windows)安装

安装Elasticsearch和Kibana 安装Elasticsearch过程 首先需要到官网下载安装包 注意&#xff1a;要下载对应的版本&#xff0c;如果下载最新版而且jdk是1.8版本的话&#xff0c;会出现warning: ignoring JAVA_HOMEC:\Program Files\Java\jdk1.8.0_191; using bundled JDK这样…

Git本地仓库使用

说明&#xff1a;Git是版本控制和协同开发的工具 下载Git 第一步&#xff1a;下载 在官网&#xff08;https://git-scm.com/download/win&#xff09;&#xff0c;选择自己的版本自行下载 第二步&#xff1a;安装 下载下来后&#xff0c;使用默认设置&#xff0c;不要改动任…

Redis6之配置文件与发布订阅

配置文件 ################################### NETWORK ############################## # 指定 redis 只接收来自于该IP地址的请求&#xff0c;如果不进行设置&#xff0c;那么将处理所有请求 bind 127.0.0.1#是否开启保护模式&#xff0c;默认开启。要是配置里没有指定b…

Java和bean(VO)、dao、Servlet、jsp的综合总结复习

学到这里&#xff0c;差不多&#xff0c;可以自主完成一个简单的系统了。所以接下来需要总结&#xff0c;然后设计一个简单的系统。分别使用Java和Java Web来实现。&#xff08;目标&#xff1a;实现简单的购物系统&#xff09; 要求&#xff1a;能注册&#xff0c;并登录。登…

【python】四舍五入保留N位小数,截断保留小数

目录 一.环境 二.适用场景 三.具体方法代码及描述 1.方法一&#xff1a;numpy-around()方法&#xff0c;四舍五入 2.方法二&#xff1a;字符串格式化&#xff08;有两种方式&#xff0c;均为四舍五入&#xff09;【推荐】 1&#xff09;%.4f 法 2) {:.4f} 法 3.方法三…