日常开发中,String类中常用的方法

日常开发中,String类中常用的方法1.基本操作方法2.字符串比较3.字符串与其他数据类型之间的转换4.字符与字符串的查找5.字符串的截取与拆分6.字符串的替换与修改

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

作者:orcl

博客:https://orcl-zung.github.io/

你知道的越多,不知道的越多

一、String的构造方法

// 把字符串数据封装成字符串对象
String(String original)

// 把字符数组的数据封装成字符串对象 
String(char[] value)

// 把字符数组中的一部分数据封装成字符串对象 
String(char[] value, int index, int count)

二、String类的获取功能:

  • length():获取字符串的长度,其实也就是字符个数
String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.length());

运行结果:
18

  • charAt(int index):获取指定索引处的字符
String str = "adsfaxsdfas沙发上案发地方";
		
char[] c = { 
   'a','d','s','f','a'};
System.out.println(str.charAt(12));

运行结果:

  • indexOf(String str):获取str在字符串对象中第一次出现的索引
    有小伙伴指出是获取指定字符在该字符串中从指定索引处开始第一次出现位置的索引,这里是题主的失误哈,测试使用了 indexOf(String str) 的重载方法,有点不严谨,现已经更改。
String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.indexOf("a"));

运行结果:
0

  • 另外再补充下 indexOf 的其他几个重载方法
    indexOf(int) 返回此字符串中第一次出现指定字符的索引,参数可以传入 char 字符,这里会将 char 字符转换为相应的 unicode 码。
    index(int, int) 返回此字符串中第一次出现指定字符的索引,从指定索引开始搜索。其实 indexOf(int) 底层也是调用此方法,只不过第二个参数传入的是 0 ,也就是说从头开始搜索。
    indexOf(String) 以及 indexOf(String, int) 则是同样的道理。
  • substring(int start):从start开始截取字符串
String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.substring(1));

运行结果:
dsfaxsdfas沙发上发地方

  • String substring(int start,int end):从start开始,到end结束截取字符串。包括start,不包括end
String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.substring(1, 12));

运行结果:
dsfaxsdfas沙

三、String判断功能

  • equals(Object obj):比较字符串的内容是否相同
String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.equals("adsfaxsdfas沙发上发地方"));
System.out.println(str.equals("adsfaxsdfas"));

运行结果:
true
false

  • equalsIgnoreCase(String anotherString):比较字符串的内容是否相同,忽略大小写
String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.equalsIgnoreCase("ADsfaxsdfAs沙发上发地方"));

运行结果:
true

  • startsWith(String prefix):判断字符串对象是否以指定的字符开头(区分大小写)
String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.startsWith("a"));
System.out.println(str.startsWith("A"));

运行结果:
true
false

  • startsWith(String prefix,int toffset):判断字符串对象是否以指定的字符开头,参数toffset为指定从哪个下标开始
String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.startsWith("f", 3));
System.out.println(str.startsWith("f", 4));

运行结果:
true
false

  • endsWith(String str):判断字符串对象是否以指定的字符结尾
String str = "adsfaxsdfas沙发上案发地方";
System.out.println(str.endsWith("x"));
System.out.println(str.endsWith("方"));

运行结果:
false
true

  • isEmpty():判断指定字符串是否为空

四、String类中的转化方法:

  • toCharArray():把字符串转换为字符数组
public static void main(String[] args) { 
   
    String str = "adsfaxsdfas沙发上发地方";
    char arr[] = str.toCharArray();
    printArray(arr);
}
public static void printArray(char a[]) { 
   
    for(int i=0;i<a.length;i++) { 
   
        System.out.print(a[i]+"--");
    }
}

运行结果:
a–d–s–f–a–x–s–d–f–a–s–沙–发–上–发–地–方–

  • toLowerCase():把字符串转换为小写字符串
String str1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
System.out.println(str1.toLowerCase());

运行结果:
abcdefghijklmnopqrstuvwxyz

  • toUpperCase():把字符串转换为大写字符串
String str1 = "abcdefghijklmnopqrstuvwxyz";
System.out.println(str2.toUpperCase());

运行结果:
ABCDEFGHIJKLMNOPQRSTUVWXYZ

五、其他常用方法

  • trim():去除字符串两端空格
String str3 = " a c e x u a n x u a n ";
System.out.println(str3.trim());
System.out.println(str3);

运行结果:
a c e x u a n x u a n
a c e x u a n x u a n

  • split():去除字符串中指定的的字符,然后返回一个新的字符串
public static void main(String[] args) { 
   
    String str = "adsfaxsdfas沙发上发地方";
    String array[] = str.split("a");
    printString(array);
}
public static void printString(String a[]) { 
   
    for(int i=0;i<a.length;i++) { 
   
        System.out.print(a[i]);
    }
}

运行结果:
dsfxsdfs沙发上发地方

  • subSequence(int beginIndex,int endIndex):截取字符串中指定位置的字符组成一个新的字符串
String str = "adsfaxsdfas沙发上发地方";
System.out.println(str.subSequence(1, 10));

运行结果:
dsfaxsdfa

  • replace(char oldChar, char newChar):将指定字符替换成另一个指定的字符
String str = "adsfaxsdfas沙发上发地方";
System.out.println(str.replace('a', 's'));

运行结果:
sdsfsxsdfss沙发上发地方

  • replaceAll(String regex,String replasement):用新的内容替换全部旧内容
String str4 = "Hello,world!";
System.out.println(str4.replaceAll("l", "&"));

运行结果:
He&&o,wor&d!

  • replaceFirst(String regex,String replacement):替换首个满足条件的内容
String str = "adsfaxsdfas沙发上发地方";
System.out.println(str.replaceFirst("沙", "璇"));

运行结果:
adsfaxsdfas璇发上发地方

  • lastIndexOf(String str):返回指定字符出现的最后一次的下标
String str4 = "Hello,world!";
System.out.println(str4.lastIndexOf("l"));

运行结果:
9

  • contains(CharSequence s):查看字符串中是都含有指定字符
String str4 = "Hello,world!";
System.out.println(str4.contains("l"));

运行结果:
true

  • concat(String str):在原有的字符串的基础上加上指定字符串
String str5 = "dr";
System.out.println(str5.concat("eam"));

运行结果:
dream

六、开发过程中经常用到的方法

/** * 截取字符串str中指定字符 strStart、strEnd之间的字符串 * * @param str 待截取的字符串 * @param strStart 起始字符或字符串 * @param strEnd 截止字符或字符串 * @return */
public String subString(String str, String strStart, String strEnd) { 
   

    // 找出指定的2个字符在该字符串里面的位置 
    int strStartIndex = str.indexOf(strStart);
    int strEndIndex = str.indexOf(strEnd);

    // index为负数,即表示该字符串中没有该字符
    if (strStartIndex < 0) { 
   
        return "字符串 :---->" + str + "<---- 中不存在 " + strStart + ", 无法截取目标字符串";
    }
    if (strEndIndex < 0) { 
   
        return "字符串 :---->" + str + "<---- 中不存在 " + strEnd + ", 无法截取目标字符串";
    }
    // 开始截取
    return str.substring(strStartIndex, strEndIndex).substring(strStart.length());
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186700.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 程序员在哪里可以接私活(程序员私活一个月能拿多少)

    最近很郁闷,一个女粉丝找我要开发一个系统。说是很着急。但是费用不高,说自己没钱。我平时事也很多,又不是很想接。说了一大堆苦情的话,然后说自己的要求不高,没有ui要求,我就接了。但是后来,越扯越严重……上升到600块要开发一个知乎的高度。这让我想起了预算茅草屋的价格,想要别墅的效果。扯皮扯的很累,项目我已经远程调试好了,也讲解了。最后全部退款了。关键是我还整理了很多讲解的说明:既然退款,项目就不是你的了,我开发的就是我的,项目的源码就开源吧。…

  • Java学习之Response篇

    Java学习之Response篇0x00前言续上篇文章内容,这篇本章来更新Response。0x01Response常用方法:setStatus(intsc):设置响应状态码se

    2021年12月12日
  • ERROR [com.alibaba.druid.pool.DruidDataSource] – init datasource error url: jdbc:mysql://xxx 解决方法

    ERROR [com.alibaba.druid.pool.DruidDataSource] – init datasource error url: jdbc:mysql://xxx 解决方法拿了一个旧项目,运行一下。控制台报错,具体错误信息如下:2018-04-0316:39:23,391ERROR[com.alibaba.druid.pool.DruidDataSource]-initdatasourceerror,url:jdbc:mysql://192.168.1.143:3306/public_platform?useUnicode=true&amp…

  • Linux主机文件777,755,644权限详解[通俗易懂]

    Linux主机文件777,755,644权限详解[通俗易懂]Linux主机的文件读写执行权限设置。一般的网站用的到也就是777、755、644这三种权限。其中每个权限都有三位数字组成,第一位表示所有者的权限,第二位表示同组用户权限,第三位表示公共用户权限,r代表读取权限等于4,w代表写入权限等于2,x代表执行权限等于1。  777的权限就是:rwxrwxrwx 。第一位7等于4+2+1,所以就是rwx,所有者有读取、

  • pyQt5 时时输出显示(PyCharm QtDesigner PyUIC开发)

    pyQt5 时时输出显示(PyCharm QtDesigner PyUIC开发)用QtDesigner工具进行界面绘制,注意各种插件的命名,以免生成的代码自己都看不懂。绘制好之后,再利用PyUIC把.ui文件转为.py文件。PyCharm可以集成QtDesignerPyUIC这两种工具。func.py:#-*-coding:utf-8-*-#Formimplementationgeneratedfromreadinguifile…

  • 数据不平衡之SMOTE算法

    数据不平衡之SMOTE算法在企业的数据分析中,很少会遇到正负样本数据比例平衡的状况。通常情况是,绝大多数为正样本,而只有极少数(几个或者十几个)负样本。在这种情况下,不论是用LR,SVM或者基于提升方法的随机森林,直接用该数据集进行学习的效果都不会太好,原因是这些方法的学习结果都会偏向于样本较多的一类。另一个方面,对学习结果进行评估时,假如正样本占95%,负样本仅占5%,这样甚至不需要学习,直接把所有新样本预测为正,准确率

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号