String类讲解(1)

🐵本篇文章将讲解String类及其包含的方法


一、介绍String类

String属于引用类型,String类是Java的一个内置类,用于表示字符串,String类中具有许多方法,可以用来操作和处理字符串

二、字符串的构造

下面介绍三种构造字符串的方法:

public static void main(String[] args) {//1.使用常量串直接赋值String str = "hello";System.out.println(str); //hello//2.使用new关键字创建字符串对象String str1 = new String("world");System.out.println(str1); //world//3.通过字符数组构造字符串char[] arr = {'a', 'b', 'c'};String str = new String(arr);System.out.println(str); //abc}

以上述代码的第二个例子为例画图讲解:

求字符串的长度和判断字符串是否为空:

public static void main(String[] args) {String str1 = "hello";System.out.println(str1.length()); //计算字符串str1的长度String str4 = "";System.out.println(str4.isEmpty()); //判断引用所指向的对象的内容是否为空,若为空返回true,否则返回falseString str5 = null;System.out.println(str5.isEmpty()); //空指针异常
}

三、字符串比较

3.1 ==

String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1 == s2);

由于s1和s2都属于引用类型,所以上述代码实际比较的是s1和s2引用的对象的地址,打印结果为false

但是在以下这种情况会返回true,这涉及到了字符串常量池,以后会讲

String s3 = "hello";
String s4 = "hello";
System.out.println(s3 == s4); //字符串常量池

3.2 boolean equals(Object o)方法

equals方法是Object类中的方法,在Object类中equals方法的功能就是比较两个对象的地址,而在String类中重写了equals方法,其功能是比较字符串对象的内容,若相等返回true,否则返回false

String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1.equals(s2)); //true

3.3 int compareTo(String s)方法

该方法和C语言中strcmp函数功能基本一致

        String s1 = new String("abc");String s2 = new String("abcd");String s3 = new String("azc");System.out.println(s1.compareTo(s2)); //-1(字符数的差)//1.s1>s2 返回一个大于0的数(s1的ASCII值减去s2的ASCII值)//2.s1<s2 返回一个大于0的数(s1的ASCII值减去s2的ASCII值)//3.s1=s2 返回0System.out.println(s1.compareTo(s3)); //-24

3.4 int compareToIgnoreCase(String s)方法

比较两个字符串但忽略大小写

String s1 = new String("hello");
String s2 = new String("HELLO");
System.out.println(s1.compareToIgnoreCase(s2)); //true

四、字符串查找

<方法> char charAt(int index)

<功能>返回字符串下标为index的字符,如果index为负数或导致越界,则抛出异常

String s1 = new String("hello");
System.out.println(s1.charAt(2)); //l

<方法> int indexOf(int ch)

<功能> 返回ch第一次出现的下标,如果字符串中没有ch则返回-1

String s1 = new String("hello");
int index = s1.indexOf('e');
System.out.println(index); //1

<方法> int indexOf(int ch, int fromIndex)

<功能> 从下标为fromIndex的位置处开始找ch,返回ch第一次出现的下标,若没有则返回-1

String s1 = new String("hello");
int index = s1.indexOf('l', 3);
System.out.println(index); //3

<方法> int indexOf(String str)

<功能> 返回str第一次出现的位置,没有则返回-1,和C语言的strstr用法基本一样

String s = new String("abcdbcd");
int index = s.indexOf("bcd"); //1

<方法> int indexOf(String str, int fromIndex)

<功能> 从fromIndex位置开始找str第一次出现的位置并返回,没有则返回-1

String s = new String("abcdefabc");
int index = s2.indexOf("abc", 3);
System.out.println(index); //6

<方法> int lastIndexOf(int ch)

<功能> 从后往前找,返回ch第一次出现的位置,没有返回-1

String s2 = new String("hello");
int i = s2.lastIndexOf('l'); //3

<方法> int lastIndexOf(int ch, int fromIndex)

<功能> 从fromIndex位置开始从后往前找,返回ch第一次出现的位置,没有返回-1

String s2 = new String("hello");
int i = s2.lastIndexOf('l', 2); //2

<方法> int lastIndexOf(String s)

<功能> 从后往前找,返回字符串第一次出现的位置,没有返回-1

String s2 = new String("abcdefabc");
int i = s2.lastIndexOf("abc");
System.out.println(i); //6

<方法> int lastIndexOf(String s, int fromIndex)

<功能> 从fromIndex位置开始从后往前找从后往前找,返回字符串s第一次出现的位置,没有返回-1

String s2 = new String("abcdefabc");
int i = s2.lastIndexOf("abc", 3);
System.out.println(i); //0

五、字符串转化

5.1 数字与字母之间的转化

//数字转换为字符串
String s1 = String.valueOf(100);
String s2 = String.valueOf(12.4);
String s3 = String.valueOf(true);
System.out.println(s1 +' '+ s2 +' '+ s3); //100 12.4 true 这些都为字符串//字符串转换为数字
int i = Integer.parseInt("123"); //Integer为包装类型,后面会讲
double d = Double.parseDouble("3.14");
System.out.println(i);
System.out.println(d);

5.2 大小写转换

String s = new String("hello");
String ret = s.toUpperCase();
System.out.println(ret); //HELLOString s1 = new String("HeLLO");
String ret1 = s1.toLowerCase();
System.out.println(ret1); //hello//若要转换的字符串不是字母,则原样输出

5.3 字符串与数组之间的转换

//字符串转换为数组
String s = new String("hello");
char[] ch = s.toCharArray();
//遍历并打印数组
for (char c : ch) {System.out.print(c);
}//数组转换为字符串
s = new String(ch);
System.out.println(s);

六、字符串替换

String s1 = new String("hehello");
String ret = s1.replaceAll("he", "aa"); //将字符串章所有的he替换为aa
System.out.println(ret); //aaaalloString ret1 = s1.replaceFirst("he", "aa"); //将字符串中第一个he替换为aa
System.out.println(ret1); //aahello

七、字符串拆分

<方法> String[] split(String regex)

<功能>以regex为分隔符,将整个字符串拆分,若字符串中没有该分隔符则原样输出

String s = new String("undertale&Sans");
String[] ret = s.split("&"); //返回类型为String[]
for (int i = 0; i < ret.length; i++) {System.out.print(ret[i] +" "); //undertale Sans
}

<方法> String[] split(String regex, int limit)

<功能>以regex为分隔符,将整个字符串拆分为limit组,若字符串中没有该分隔符则原样输出

String s1 = new String("hello world hello Sans");
String[] ret1 = s1.split(" ", 3); //分成3部分
for (int i = 0; i < ret1.length; i++) {System.out.println(ret1[i]);
}

<特殊1>若分隔符为". * +",则要进行转义,在前面加上\\

String s = new String("192.168.1.1");
String[] ret = s1.split("\\."); 
for (int i = 0; i < ret.length; i++) {System.out.print(ret[i] +" "); //192 168 1 1
}

<特殊2>

String s1 = new String("192\\168\\1\\1");
String[] ret = s1.split("\\\\"); 
for (int i = 0; i < ret.length; i++) {System.out.print(ret[i] + " "); //192 168 1 1
}

<特殊3>若有多个分隔符,则可以用 "|" 将分隔符隔开

String s2 = new String("name=Sans&age=18");
String[] ret3 = s2.split("=|&");
for (int i = 0; i < ret3.length; i++) {System.out.print(ret3[i] +" "); //name Sans age 18
}

八、字符串截取

<方法> String subString(int beginIndex)

<功能> 从beginIndex开始截取到字符串结尾

String str = new String("abcdef");
String ret = str.substring(2); // cdef

<方法> String subString(int beginIndex, int endIndex)

<功能> 以区间[beginIndex, endIndex)截取字符串

String str = new String("abcdef");
String ret = str.substring(2, 5); // cde

<其他> String trim()

<功能> 删除字符串开头和结尾的空格

String str = "   abc d f    ";
System.out.println(str);
String ret = str.trim();
System.out.println("["+ ret +"]");


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

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

相关文章

为品质加冕 | 喜尔康智家再次斩获大奖

近日&#xff0c;被誉为“家居质量界奥斯卡”的2023年度沸腾质量奖颁奖盛典在福建厦门第三届家居质量大会同期隆重举行。现场重磅揭晓2023年沸腾质量奖测评获奖结果。 今年&#xff0c;喜尔康智能家居再接再厉&#xff0c;从数百家参评企业中脱颖而出&#xff0c;参评的智能坐便…

Java中如何构建平衡二叉树

定义&#xff1a;平衡二叉树是一棵二叉排序树&#xff0c;或者为空&#xff0c;或者满足以下条件&#xff1a; 1)左右子树高度差的绝对值不大于1&#xff1b; 2)左右子树都是平衡二叉树。 平衡因子&#xff1a;左子树的高度减去右子树的高度&#xff0c;显然&#xff0c;在平衡…

卡码网语言基础课 | 15. 链表的基础操作Ⅲ

目录 一、 插入链表的过程 二、 删除链表的过程 三、 打印链表 3.1 判断节点是否处于链尾 3.2 打印链表 3.3 循环体结束&#xff0c;遍历打印 题目&#xff1a; 请编写一个程序&#xff0c;实现以下链表操作&#xff1a;构建一个单向链表&#xff0c;链表中包含一组整数…

python爱心代码高级

在Python中&#xff0c;我们可以使用matplotlib库来创建一个更高级的爱心图形。以下是一个示例&#xff1a; import matplotlib.pyplot as pltimport numpy as npx np.linspace(-2, 2, 1000)y1 np.sqrt(1-(abs(x)-1)**2)y2 -3*np.sqrt(1-(abs(x)/2)**0.5)fig, ax plt.subp…

uni-app 微信小程序 pdf预览

<div click"getPDF">查看体检报告</div>getPDF() {uni.downloadFile({url: ${this.$baseURL}/file/download?id${this.pdfFileId},//编写在线的pdf地址success: function(res) {const filePath res.tempFilePath;uni.openDocument({filePath: filePath…

随时随地,打开浏览器即可体验的在线PS编辑器

即时设计 即时设计是国产的专业级 UI 设计工具&#xff0c;不限平台不限系统&#xff0c;在浏览器打开即用&#xff0c;能够具备 Photoshop 的设计功能&#xff0c;钢笔、矢量编辑、矩形工具、布尔运算等设计工具一应俱全&#xff0c;是能够在线使用的 Photoshop 免费永久工具…

给csgo搬砖新手的十大建议

1、不要参与赌博性质的开箱和炼金&#xff0c;因为真的会上瘾&#xff0c;赚了还好&#xff0c;亏了你得哭。 2、实在想要玩饰品&#xff0c;直接去悠悠有品或者网易buff看价格&#xff0c;底价再砍10元&#xff0c;总会有人愿意卖的。 3、在steam上不要接受陌生人的好友申请&…

解析d3dcompiler_47.dll缺失怎么修复,4种方法修复d3dcompiler_47.dll文件

d3dcompiler_47.dll缺失怎么修复&#xff1f;其实在我们使用计算机操作的过程中&#xff0c;有时会遇到一些由dll文件错误导致的问题&#xff0c;其中d3dcompiler_47.dll丢失就是这样一种。那么究竟d3dcompiler_47.dll缺失是什么意思&#xff0c;为何它会发生丢失&#xff0c;以…

sqli-labs靶场详解(less1-less10)

目录 less-1 less-2 less 3 less 4 less 5 less-6 less-7 less-8 less-9 less-10 1-10关代码分析 less-1 判断注入点 ?id1 正常 ?id1 报错&#xff1a;to use near 1 ?id1\ 报错&#xff1a;to use near 1\ ?id1 and 11 正常 ?id1 and 11 报错&#xff1a;to …

Snagit 2024.0.1(Mac屏幕截图软件)

Snagit 2024是一款屏幕截图工具&#xff0c;可以帮助用户轻松捕获、编辑和分享屏幕截图。该工具在Mac上运行&#xff0c;旨在满足用户对于屏幕截图的各种需求。 Snagit 2024支持屏幕录制功能&#xff0c;可以录制摄像头和麦克风等外部设备&#xff0c;让用户录制更加全面的视频…

干货分享 | TSMaster采样点配置方法与消除错误帧流程

当通讯节点间采样点参数和波特率参数不匹配造成一些错误帧时&#xff0c;我们如何在TSMaster中设置以及调整波特率参数和采样点参数&#xff0c;来减少以及消除总线上出现的错误帧&#xff0c;进一步提高通信质量。本文着重讲解讲解如何借用TSmaster更加便捷地获取相应的采样点…

js 获取数组的最大值与最小值

let arr [1, 2, 5, 8, 10, 100, -1] 1. 使用Math的静态方法max/min Math.max()函数返回给定的一组数中的最大值。 它的语法&#xff1a;Math.max(value1[, value2, ...]) 使用此方法&#xff0c;需要注意&#xff0c;如果没有参数的话&#xff0c;则返回-Infinity。如果有任一…