Java024——String类

news2024/11/17 1:47:21

一、String类简单说明

1、单个字符可以用char类型保存,多个字符组成的文本就需要保存在String 对象中。
2、String是Java中的一个
3、String 通常被称为字符串,一个String对象最多可以保存(2^32-1)个字节(占用4GB空间大小)的文本内容。

二、String类的作用

作用:主要用来创建和操作字符串。

三、使用String类

3.1、创建字符串

注意:
1、字符串使用双引号" "括起来;
2、变量如果定义成String字符串类型,即使只有一个字母,也要使用双引号" "括起来;

方式一:直接创建

String str1 = "We are student";
String str2 = "We are student";
//这样创建的str1和str2指向的是同一个地址的值,即它们两个的引用相等

在这里插入图片描述

方式二:用构造函数创建字符串:

String str2=new String("Hello Java");

方式三:通过数组创建字符串:

char []a = {'H','e','l','l','o',' ','J','a','v','a'};
String str2=new String(a);
//等价于=》String str2=new String("Hello Java");

char []a = {'H','e','l','l','o',' ','J','a','v','a'};
String str2=new String(a,1,3);//表示从数组的下标1开始截取3位
//等价于=》String str2=new String("ell");

3.2、输出String类型变量

String str1 = "Hello Java";
String str2=new String("Hello Java");
System.out.println( str1  );
System.out.println( str2  );

结果如下:
在这里插入图片描述

四、连接字符串

4.1、连接多个字段

直接使用+号连接

public class HelloWorld {
    public static void main(String []args) {
		String str1 = "若教眼底无离恨,";
		String str2 = "不信人间有白头。";
		String str3 = str1 + str2;
       	System.out.println(str3);
    }
}
//输出结果
若教眼底无离恨,不信人间有白头。

4.2、连接其他数据类型

会将其他数据类型的数据直接转换成字符串

public class HelloWorld {
    public static void main(String []args) {
		int num1 = 2;
		int num2 = 3;
		System.out.println(num1+" "+num2+"点雨山前");
       	System.out.println(num1+num2+"点雨山前");
    }
}
//输出结果
若教眼底无离恨,不信人间有白头。

五、获取字符串信息

5.1、获取字符串长度

使用 Sting 类的 length()方法可获取声明的字符串对象的长度

public class HelloWorld {
    public static void main(String []args) {
		String str2 = "不信人间有白头";
		int len = str2.length();
       	System.out.println("str2的长度为:"+len);
    }
}
//输出结果
str2的长度为:7

5.2、字符串查找

注意:字符串的下标是 0~length()-1
1、str.indexOf(subStr)
返回指定子字符串第一次出现处的索引,若没有则返回-1

public class HelloWorld {
    public static void main(String []args) {
		String str = "返回指定子字符串在此字符串中第一次出现处的索引";
		int index = str.indexOf("字符串");
        System.out.println(index);
    }
}
//输出结果
5

2、str.lastIndexOf(subStr)
返回指定子字符串最后一次出现处的索引,若没有则返回-1

public class HelloWorld {
    public static void main(String []args) {
		String str = "返回指定子字符串在此字符串中第一次出现处的索引";
		int index = str.lastIndexOf("字符串");
        System.out.println(index);
    }
}
//输出结果
10

5.3、返回指定索引处的单个字符。

str.charAt(index)

str: 任意字符串 ;
index: 整型值,用于指定要返回字符的下标。

public class HelloWorld {
    public static void main(String []args) {
		String str = "不信人间有白头";
		char mychar = str.charAt(2);
        System.out.println(mychar);
    }
}
//输出结果

六、字符串操作

6.1、获取字符串

1、substring (int beginlndex)
该方法返回的是从指定的索引位置开始截取直到该字符串结尾的子串。语法如下:

str.substring (int beginlndex)
其中,beginIndex指定从某一索引处开始截取字符串。

public class HelloWorld {
    public static void main(String []args) {
		String str = "不信人间有白头";
		String mystr = str.substring(2);
        System.out.println(mystr);
    }
}
//输出结果
人间有白头

2、substring (int beginlndex,int endIndex)
该方法返回的是从字符串某一索引位置开始截取,至某一索引位置结束前(不包括该位置)的子串。语法如下:

str.substring(int beginlndex, int endlndex)
beginIndex:开始截取子字符串的索引位置。
endIndex:子字符串在整个字符串中的结束位置

public class HelloWorld {
    public static void main(String []args) {
		String str = "不信人间有白头";
		String mystr = str.substring(2,4);
        System.out.println(mystr);
    }
}
//输出结果
人间

6.2、去首位空格

str.trim():返回去掉字符串首、尾的空格后的字符串

public class HelloWorld {
    public static void main(String []args) {
		String str = " 不信人间有白头 ";
        System.out.println("原始字符串:"+str);
        System.out.println("去首尾空格后的字符串:"+str.trim());
    }
}
//输出结果
原始字符串: 不信人间有白头 
去首尾空格后的字符串:不信人间有白头

6.3、字符串替换

String replace(char oldChar, char newChar)
返回一个新的字符串,它是通过用 newChar 替换字符串中出现的所有 oldChar 得到的。

public class HelloWorld {
    public static void main(String []args) {
		String str = "山不过来,我就过去";
        String newStr = str.replace("过","走");//将”过“都替换成”走“
        System.out.println("替换后的字符串:"+newStr);
    }
}
//输出结果
替换后的字符串:山不走来,我就走去

6.4、判断字符串的开始与结尾

1、boolean startsWith(String prefix)
判断字符串是否以指定的前缀开始,是则返回true,反之返回false

2、boolean endsWith(String suffix)
判断字符串是否以指定的后缀结束,是则返回true,反之返回false

class test {
    public static void main(String[] args) {
        String str = "V_10.8.0_Pro";

        boolean start = str.startsWith("V_");//判断字符串str是不是以V_开头
        boolean end = str.endsWith("_Pro");//判断字符串str是不是以_Pro结尾

        if (start == true){
            System.out.println("字符串"+str+"是以V_开头");
        }

        if (end == true){
            System.out.println("字符串"+str+"是以_Pro结尾");
        }
    }
}

//输出结果
字符串V_10.8.0_Pro是以V_开头
字符串V_10.8.0_Pro是以_Pro结尾

6.5、判断字符串是否相等

1、boolean equals(Object anObject)
将此字符串与指定的对象比较,考虑大小写,相等则返回true,反之返回false

2、boolean equalsIgnoreCase(String anotherString)
将此 字符串与另一个 字符串 比较,不考虑大小写,相等则返回true,反之返回false

class test {
    public static void main(String[] args) {
        String str1 = "ABCDE";
        String str2 = "ABCde";

        //使用equals()
        if (str1.equals(str2)){
            System.out.println("区分大小写情况下:字符串"+str1+"和字符串"+str2+"相等");
        }else{
            System.out.println("区分大小写情况下:字符串"+str1+"和字符串"+str2+"不相等");
        }

        //使用equalsIgnoreCase()
        if (str1.equalsIgnoreCase(str2)){
            System.out.println("不区分大小写情况下:字符串"+str1+"和字符串"+str2+"相等");
        }else{
            System.out.println("不区分大小写情况下:字符串"+str1+"和字符串"+str2+"不相等");
        }
    }
}

//输出结果
区分大小写情况下:字符串ABCDE和字符串ABCde不相等
不区分大小写情况下:字符串ABCDE和字符串ABCde相等

6.6、按字典顺序比较两个字符串

如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的长度差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方结束。

如果参数字符串等于此字符串,则返回值 0;
如果此字符串小于字符串参数,则返回一个小于 0 的值;
如果此字符串大于字符串参数,则返回一个大于 0 的值。

1、int compareTo(String anotherString)
按字典顺序比较两个字符串。考虑大小写。

public class Test {
    public static void main(String args[]) {
        String str1 = "Strings";
        String str2 = "Strings";
        String str3 = "Strings123";
 
        int result = str1.compareTo( str2 );
        System.out.println(result);
      
        result = str2.compareTo( str3 );
        System.out.println(result);
     
        result = str3.compareTo( str1 );
        System.out.println(result);
    }
}

//输出结果为:
0
-3
3

2、int compareToIgnoreCase(String str)
按字典顺序比较两个字符串,不考虑大小写。

public class Test {

    public static void main(String args[]) {
        String str1 = "STRINGS";
        String str2 = "Strings";
        String str3 = "Strings123";

        int result = str1.compareToIgnoreCase( str2 );
        System.out.println(result);
      
        result = str2.compareToIgnoreCase( str3 );
        System.out.println(result);
     
        result = str3.compareToIgnoreCase( str1 );
        System.out.println(result); 
    }
}

//输出结果为:
0
-3
3

6.7、字母大小写转换

1、String toLowerCase()
使用默认语言环境的规则将此 字符串 中的所有字符都转换为小写。

2、String toLowerCase(Locale locale)
使用给定 Locale 的规则将此 字符串 中的所有字符都转换为小写。

public class Test {
    public static void main(String args[]) {
        String Str = new String("WWW.baidu.COM");

        System.out.print("所有字符都转换为小写 :" );
        System.out.println( Str.toLowerCase() );
        
		System.out.print("所有字符都转换为大写 :" );
        System.out.println( Str.toUpperCase() );
    }
}

//输出结果为:
所有字符都转换为小写 :www.baidu.com
所有字符都转换为大写 :WWW.BAIDU.COM

6.8、字符串分割

String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。

1、参数 :
regex – 正则表达式分隔符。
limit – 分割的份数。
2、返回值:
字符串数组。

注意: .$|* 等转义字符,必须得加 \\
注意:多个分隔符,可以用 | 作为连字符。

public class Test {
    public static void main(String args[]) {
        String str = new String("Welcome-to-Runoob");
 
        System.out.println("- 分隔符返回值 :" );
        for (String retval: str.split("-")){
            System.out.println(retval);
        }
 
        System.out.println("");
        System.out.println("- 分隔符设置分割份数返回值 :" );
        for (String retval: str.split("-", 2)){
            System.out.println(retval);
        }
 
        System.out.println("");
        String str2 = new String("www.runoob.com");
        System.out.println("转义字符返回值 :" );
        for (String retval: str2.split("\\.", 3)){
            System.out.println(retval);
        }
 
        System.out.println("");
        String str3 = new String("acount=? and uu =? or n=?");
        System.out.println("多个分隔符返回值 :" );
        for (String retval: str3.split("and|or")){
            System.out.println(retval);
        }
    }
}

//执行结果为:

- 分隔符返回值 :
Welcome
to
Runoob

- 分隔符设置分割份数返回值 :
Welcome
to-Runoob

转义字符返回值 :
www
runoob
com

多个分隔符返回值 :
acount=? 
 uu =? 
 n=?

七、字符串生成器

1、新创建的 StringBullder 对象始容量是16符,可以自行指定初始长度。
2、如果附加的字符超过可容纳的长度,则StringBuilder 对象将自动增加长度以容纳被附加的字符。
3、若要使用 StringBuilder 类最后输出字符串结果,可使用 toString()方法。

7.1、StringBullder 常用方法

1、public StringBuffer append(String s)
将指定的字符串追加到此字符序列。

2、public insert(int offset, int i)
将 int 参数(或者其他类型参数)的字符串表示形式插入此序列中。

3、public delete(int start, int end)
从原始字符串中,移除从索引start到索引end的子字符串。

4、public StringBuffer reverse()
反转字符串。

class test {
    public static void main(String[] args) {
        StringBuilder builder = new StringBuilder(); // 创建字符串生成器

        builder.append("Hello");//向builder中追加 "Hello"
        builder.append(" World");//向builder中追加 " World"
        System.out.println(builder.toString());//输出结果

        builder.insert(5, "_Java");//在索引5处开始插入"_Java"
        System.out.println(builder.toString());

        builder.delete(10,16);//删除索引10到16之间的内容
        System.out.println(builder.toString());
        
		builder.reverse();//反转字符串。
        System.out.println(builder.toString());
    }
}

//运行结果
Hello World
Hello_Java World
Hello_Java
avaJ_olleH

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

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

相关文章

Jmeter 压测工具的安装及使用

目录 一、简介二、下载三、安装四、启动五、使用1.调整界面显示大小2.改为中文(选)3.添加线程组4.添加 HTTP 请求5.添加 HTTP 请求头6.保存压测配置7.启动压测8.查看结果树9.查看聚合报告 一、简介 官网地址: https://jmeter.apache.org/ JM…

HTML案例:滚动条下拉后导航栏有网格状效果

案例&#xff1a;在滚动条下拉的时候&#xff0c;导航栏是固定的&#xff0c;当下拉卷出的内容在导航条的范围内时&#xff0c;导航条的背景虚化为卷出的内容 固定定位的效果 需求效果&#xff1a; 1、HTML代码 <style>* {margin: 0;padding: 0;}nav {/* 固定定位 */pos…

穷且益坚,不坠青云之志——忆我的大学四年

文章目录 一、前言二、大学之前1.从小的经历以及家庭的困境2.一切的根源——自卑3.不愉快的初高中经历 三、大一&#xff1a;所谓追梦——改变的起点1.敏感而自卑的内心2.百团大战&#xff0c;与协会埋下不解之缘3.改变的契机——追梦App4.持续的学习&#xff0c;热爱铸就改变5…

vscode安装+配置+使用+调试【保姆级教程】

1. VScode是什么 Visual Studio Code简称VS Code&#xff0c;是一款跨平台的、免费且开源的现代轻量级代码编辑器&#xff0c;支持几乎主流开发语言的语法高亮、智能代码补全、自定义快捷键、括号匹配和颜色区分、代码片段提示、代码对比等特性&#xff0c;也拥有对git的开箱即…

Django_发送邮件

目录 一、开启SMTP服务并获取授权码 二、在Django的配置文件中添加邮箱服务配置 三、发送邮箱代码 源码等资料获取方法 使用django邮箱功能需要搭建smtp服务器&#xff0c;如果没有&#xff0c;可以使用第三方smtp服务器。 本文以第三方QQ邮箱服务器演示如何使用python的s…

从钢铁行业数字化管控平台的智能进化,看超自动化能力边界

文/王吉伟 钢铁行业的数字化转型&#xff0c;历来都是值得探讨的热点话题。 2022年&#xff0c;我国粗钢产量10.13亿吨&#xff0c;占据了全球钢铁供给市场的半壁江山。 这组数据可谓非常抢眼&#xff0c;但仍旧难掩诸多企业的各种经营问题。 钢铁生产过程工序众多&#xf…

CentOS环境下的JDK8安装

CentOS 安装 JDK8 安装JDK8 下载 官网&#xff1a;https://www.oracle.com/java/technologies/downloads/#java8-linux 将下载好的压缩包拷贝到根目录下 通过xshell如果出现 bash: rz: 未找到命令 &#xff0c;需要先运行下面的命令 yum -y install lrzsz解压 tar -zxvf …

ubuntu彻底卸载libreoffice和安装wps

一.卸载libreoffice 1. 打开ubuntu桌面&#xff0c;右键 打开终端 方法一 完全卸载 sudo apt-get remove libreoffice-common 根据提示输入管理员密码&#xff0c;然后根据提示 输入 Y 这样&#xff0c;等待卸载完成。 正常情况下上述命令执行完成后Libreffice的表格、绘图…

DevOps基础服务1——版本控制gitlab

文章目录 一、基本了解1.1 安装git客户端1.2 git命令1.2.1 本地仓库1.2.2 远程仓库 二、安装gitlab三、功能管理3.1 创建账号3.2 用户注册授权通知功能3.3 创建项目远程库3.4 ssh设置3.5 克隆远程库项目到本地3.6 上传本地项目代码到远程库3.7 授权用户查看项目权限 一、基本了…

华为OD机试真题 Java 实现【查找树中元素】【2023 B卷 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、补充说明五、Java算法源码六、效果展示1、输入2、输出 一、题目描述 已知树形结构的所有节点信息&#xff0c;现要求根据输入坐标&#xff08;x,y&#xff09;找到该节点保存的内容值&#xff1b; 其中&#xff1a; x表示节点…

光场1.0——非聚焦型光场相机

本文概要 本文讲主要从光场硬件结构设计以及软件处理方式的层面来介绍一下光场的相关内容&#xff0c;关于光场的优势和具体应用点并不在本文的主要范围内。 光场1.0 1. 结构原理说明 首先来介绍一下光场相机&#xff0c;那么什么是光场相机呢&#xff0c;光场相机经历了两…

c语言实现单链表

#include<stdio.h> #include<malloc.h>typedef struct LNode{double data;struct LNode *next; }LNode,*LinkList;bool InitList(LinkList &L){L(LNode*) malloc(sizeof(LNode));//分配一个头结点 if(LNULL) //内存不足&#xff0c;分配失败 return false;L-&g…

机器学习与深度学习——自定义函数进行线性回归模型

机器学习与深度学习——自定义函数进行线性回归模型 目的与要求 1、通过自定义函数进行线性回归模型对boston数据集前两个维度的数据进行模型训练并画出SSE和Epoch曲线图&#xff0c;画出真实值和预测值的散点图&#xff0c;最后进行二维和三维度可视化展示数据区域。 2、通过…

day68_Vue基础

今日内容 零、 复习昨日 零、 复习昨日 一、Vue简介 1.1 简介 Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式的js框架&#xff0c;发布于 2014 年 2 月。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注…

100、基于STM32单片机自动跟随小车 红外遥控控制小车避障模式 跟随模式设计(程序+原理图+PCB源文件+流程图+硬件设计资料+元器件清单等)

绪 论 智能小车通过各种感应器获得外部环境信息和内部运动状态&#xff0c;实现在复杂环境背景下的自主运动&#xff0c;从而完成具有特定功能的机器人系统。而随着智能化电器时代的到来&#xff0c;它们在为人们提供的舒适的生活环境的同时&#xff0c;也提高了制造智能化电器…

系统上线前,SQL脚本的9大坑

前言 系统上线时&#xff0c;非常容易出问题。 即使之前在测试环境&#xff0c;已经执行过SQL脚本了。但是有时候&#xff0c;在系统上线时&#xff0c;在生产环境执行相同的SQL脚本&#xff0c;还是有可能出现一些问题。 有些小公司&#xff0c;SQL脚本是开发自己执行的&am…

React Dva修改路由设置,不要井号

我们Dva项目的路由 他默认是设置了带井号的这种 其实我觉得到还可以 但是有些人会觉得不太美观 如果 你想去除他 那么 你先要在终端执行 npm install --save history将 history 引入进来 装好之后 我们来到src下的 index.js 加上如下代码 import {createBrowserHistory as …

nginx配置例子-反向代理实现

4.1 反向代理实现&#xff08;实例1&#xff09; 4.1.1需要实现的效果 (1)打开浏览器&#xff0c;在浏览器地址栏输入地址 www.123.com&#xff0c;跳转到liunx.系统tomat主页面中 4.1.2 准备工作 (1&#xff09;在liunx, 系统安装 tomcat, 使用默认端口8080. tomcat安装文…

【C++】-vector的具体使用(迭代器失效问题)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

【Nacos】Nacos 2.2.4支持pg数据库适配改造

Nacos 2.2.4支持postgresql数据库 本文基源码&#xff1a;扩展插件包 网上资料都有&#xff0c;还是个人爬坑补充异常处理记录&#xff0c;以便后续升级改造有漏洞修复 下载源码 https://github.com/alibaba/nacos/releases 添加依赖 根pom添加pg依赖 <postgresql.vers…