Java笔记——String类各种方法的使用总结(附带实例)

System.out.println(s1.startsWith(“hel”)); //true

System.out.println(s1.startsWith(“He”)); //false

System.out.println(s1.startsWith(“world”)); //false

System.out.println(“==============”);

//boolean endsWith(String str)测试此字符串是否以指定的后缀结尾

//区分大小写

System.out.println(s1.endsWith(“world”)); //true

System.out.println(s1.endsWith(“lD”)); //false

System.out.println(“==============”);

//boolean isEmpty()当字符串的length()为0时返回true

String s3 = “”;

System.out.println(s3.isEmpty()); //true

System.out.println(s1.isEmpty()); //false

//这里需要注意的是,String s = null没有对象,不算空字符串,不能调用方法

String s4 = null;

//System.out.println(s4.isEmpty()); //这里会报空指针的错误

//同样的,如果进行字符串的比较,为了防止出现空指针异常,将变量放后面

//System.out.println(s4.equals(“java”)); //这里一样会报错,空指针异常

//因此推荐这么写

System.out.println(“java”.equals(s4)); //结果是false

}

}

String类的获取方法

String类实现获取功能的方法有

int length() —— 获取字符串长度

char charAt(int index) —— 获取指定索引处的字符值

int indexOf(int ch) —— 获取指定字符第一次出现的索引位置

int indexOf(String str) —— 获取指定字符串第一次出现的索引位置

int indexOf(int ch,int fromIndex) —— 从指定位置开始获取指定字符第一次出现的索引位置

int indexOf(String str,int fromIndex) —— 从指定位置开始获取指定字符串第一次出现的索引位置

String substring(int start) —— 截取字符串,范围是从start到最后

String substring(int start,int end) —— 截取字符串,范围是【start,end)

package test.StringDemo;

public class demo6 {

public static void main(String[] args) {

String s = “helloworld”;

//int length() 获取字符串的长度

System.out.println(s.length()); // 10

System.out.println(“=============”);

//public char charAt(int index)返回char指定索引处的值

//索引值的范围是从0开始到length()-1

System.out.println(s.charAt(0)); // h

System.out.println(s.charAt(9)); // d

//System.out.println(s.charAt(10)); //字符串下标越界异常

System.out.println(“=============”);

//public int indexOf(int ch)返回指定字符第一次出现的字符串内的索引。

//括号里面传入的是指定字符对应的ASCII码值,具体写的时候写ASCII码值和直接写字符都可以

System.out.println(s.indexOf(104)); // 0

System.out.println(s.indexOf(‘l’)); // 2

System.out.println(s.indexOf(‘a’)); //不存在,返回-1

System.out.println(“=============”);

//public int indexOf(String str)

//返回括号中指定的子字符串第一次出现的索引

System.out.println(s.indexOf(“owo”)); // 4

System.out.println(s.indexOf(“ovo”)); //不存在,返回-1

System.out.println(“=============”);

// public int indexOf(int ch,int fromIndex)

// 返回指定字符第一次出现的索引,以指定的索引开始搜索,搜索范围包括指定的索引

System.out.println(s.indexOf(‘l’,4)); // 8

System.out.println(s.indexOf(‘e’,1)); // 1

System.out.println(s.indexOf(‘h’,1)); //不存在,返回-1

System.out.println(“=============”);

//int indexOf(String str,int fromIndex)

//返回指定字符串第一次出现的索引,以指定的索引开始搜索

System.out.println(s.indexOf(“owo”,2)); // 4

System.out.println(s.indexOf(“owo”,8)); //不存在,返回-1

System.out.println(“=============”);

//public String substring(int beginIndex) 截取一段字符串

// 子字符串以指定索引处的字符开头,包括指定索引处,并扩展到该字符串的末尾。

System.out.println(s.substring(3)); // loworld

// 索引超出范围,返回空字符串

String ss = s.substring(10);

System.out.println(ss.equals(“”)); // true

System.out.println(“=============”);

//public String substring(int beginIndex,int endIndex)

//子串截取范围左闭右开,开始于指定beginIndex并延伸到字符索引endIndex-1

System.out.println(s.substring(1,3)); // el

//System.out.println(s.substring(1,12)); //数组下标越界异常

}

}

String类的转化方法

String类实现转换功能的方法有

byte[] getBytes() —— 转换为字节数组

char[] toCharArray() —— 转换为字符数组

static String valueOf(char[] chs) —— 字符数组转换为字符串

static String valueOf(int i) —— int值转换为字符串

String toLowerCase() —— 字符串全部小写

String toUpperCase() —— 字符串全部大写

String concat(String str) —— 将指定字符串连接到原字符串的后面

package test.StringDemo;

import java.util.Arrays;

public class demo7 {

public static void main(String[] args) {

String s = “helloWORLD”;

//public byte[] getBytes()

// 使用平台的默认字符集将此String编码为字节序列,将结果存储到新的字节数组中。

byte[] b = s.getBytes();

for(int i=0;i<b.length;i++){

System.out.println(b[i]);

}

//也可以像下面这样打印,只需要一行

//[104, 101, 108, 108, 111, 87, 79, 82, 76, 68]

System.out.println(Arrays.toString(b));

System.out.println(“===============”);

//char[] toCharArray()将此字符串转换为新的字符数组。

//由原先的字符串变成字符数组

char[] chars = s.toCharArray();

for(char c:chars){

System.out.println©;

}

//[h, e, l, l, o, W, O, R, L, D]

System.out.println(Arrays.toString(chars));

System.out.println(“===============”);

//将字符数组转换为字符串

//static String valueOf(char[] chs)

System.out.println(String.valueOf(chars)); //helloWORLD

//同理这里也可以将int类型的数据转换为字符串类型

String ss = String.valueOf(20);

System.out.println(ss); //20

System.out.println(“===============”);

//String toLowerCase() 将字符串内容全部转化成小写

System.out.println(s.toLowerCase()); //helloworld

// String toUpperCase(),将字符串内容全部转大写

System.out.println(s.toUpperCase()); //HELLOWORLD

System.out.println(s); //helloWORLD,s自身的值并没有被改变

System.out.println(“===============”);

//public String concat(String str)将指定的字符串连接到该字符串的末尾

System.out.println(s.concat(“java”)); //helloWORLDjava

//这里同样需要注意的是

String s2 = null;

//这里会报空指针异常的错误

//System.out.println(s2.concat(“nothing”));

}

}

字符串的替换方法

实现替换功能的方法

String replace(char old,char new)

String replace(String old,String new)

package test.StringDemo;

public class demo10 {

public static void main(String[] args) {

String s = “helloworld”;

//String replace(char old,char new)替换字符

//将字符串中所有的l替换成a,返回一个新的字符串

String s1 = s.replace(‘l’,‘a’);

System.out.println(s1); //heaaoworad

//String replace(String old,String new)替换字符串

String s2 = s.replace(“owo”,“ovo”);

System.out.println(s2); //hellovorld

//如果被替换的字符串不存在,返回原来的字符串

String s3 = s.replace(“abc”,“efg”);

System.out.println(s3); //helloworld

}

}

去除字符串两边的空格

String trim()

package test.StringDemo;

public class demo11 {

public static void main(String[] args) {

//去除字符串两边的空格

String s = " hello ";

System.out.println(s);

System.out.println(s.trim());

}

}

在这里插入图片描述

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

int compareTo(String str) —— 按位置比较字符串

int compareToIgnoreCase(String str) ——按位置比较字符串,忽略大小写

package test.StringDemo;

public class demo12 {

public static void main(String[] args) {

//当前面的字符不相同时

String s1 = “hello”; //h的ASCII码值为104

String s2 = “hello”;

String s3 = “java”; //j的ASCII码值为106

String s4 = “apache”; //a的ASCII码值为97

System.out.println(s1.compareTo(s2)); //0

System.out.println(s1.compareTo(s3)); //-2

System.out.println(s1.compareTo(s4)); //7

//当前面的字符相同时

String ss1 = “hel”;

String ss2 = “helloworld”;

System.out.println(s1.compareTo(ss1)); //2

System.out.println(s1.compareTo(ss2)); //-5

//忽略大小写

String s5 = “Hello”; //H的ASCII码值为72

System.out.println(s1.compareTo(s5)); //32

System.out.println(s1.compareToIgnoreCase(s5)); //0

}

}

这里可以来看一下compareTo的源码

public int compareTo(String anotherString) {

int len1 = value.length;

int len2 = anotherString.value.length;

int lim = Math.min(len1, len2);

char v1[] = value;

char v2[] = anotherString.value;

int k = 0;

while (k < lim) {

char c1 = v1[k];

char c2 = v2[k];

if (c1 != c2) {

return c1 - c2;

}

k++;

}

return len1 - len2;

}

这里可以简单的总结为,

当对应位置的字符不相同时,返回的值是ASCII码值相减的结果。

当对应位置的字符都相同,但是字符个数不相同时,返回的是字符串长度相减的结果。

练习用的题目

题目一:统计一个字符串中大写字母,小写字母,数字出现的次数

package test.StringDemo;

public class demo8 {

public static void main(String[] args) {

String s = “helloHello123World”;

char[] chars = s.toCharArray();

int Bigcount = 0;

int Smallcount = 0;

int Numcount = 0;

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
= 0;

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-rdki9Qsn-1715760492844)]

[外链图片转存中…(img-wVTGycvg-1715760492845)]

[外链图片转存中…(img-QIvyWu7j-1715760492845)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值