Java常用类:String类

1|0Java常用类:String类



1|1String

  • 字符串是常量,创建之后不可改变

  • 字符串字面值存储在字符串池中,可以共享

  • String s = "Hello";产生一个对象,字符串池中储存

  • String s = new String("Hello");产生两个对象,堆和字符串池中各存储一个

  • 示例

    public class Demo01 { public static void main(String[] args) { String name = "Hello";//"Hello"常量存储在字符串池中 //"Dt"赋值给name变量,给字符串赋值时,并没有修改数据,而是重新开辟一个空间 //name常量指向"Hello"变成指向"Dt" name = "Dt"; String name1 = "Dt";//在字符串池中寻找"Dt",存在就直接使用,不存在就开辟一个空间来存储 //字符串的另一种创建方式:new String(); String str = new String("ab");//产生两个对象,堆和字符串池中各存储一个,堆里的对象指向字符串池的对象 String str2 = new String("ab"); System.out.println(str == str2);//false System.out.println(str.equals(str2));//true //字符串比较用equals()而不是==,==是比较字符串的地址 } }

1|2String类常用方法

  • public int length();返回字符串的长度
  • public char charAt(int index);根据下标获取字符
  • public boolean contains(String str);判断当前字符中是否含str
  • public char[] toCharArray();将字符串转换成数组
  • public int indexOf(String str);寻找 str 在当前字符串首次出现的下标,存在,则返回下标;不存在,则返回-1
  • public int lastIndexOf(String str);寻找 str 在当前字符串中最后一次出现的下标索引
  • public String trim();去掉字符串前后的空格
  • public String toUpperCase();将小写转换成大写
  • public String toLowerCase();将大写转换成小写
  • public boolean starWith(String str);判断字符串是否以 str 开头
  • public boolean endWith(String str);判断字符串是否以 str 结尾
  • public String replace(char oldChar,char newChar);将旧字符替换成新字符
  • public String[] split(String str);根据 str 做拆分,拆分成数组
  • public boolean equals(Object anObject);将此字符串与指定的对象比较
  • public boolean equalsIgnoreCase(String anotherString);将此 String 与另一个 String 比较,不考虑大小写
  • public int compareTo(String anotherString);按字典顺序比较两个字符串
  • publicint compareToIgnoreCase(String str); 按字典顺序比较两个字符串,不考虑大小写
  • public String substring(int beginIndex);截取指定位置的字符串

示例:

import java.util.Arrays; public class Demo02 { public static void main(String[] args) { System.out.println("===========1============"); //字符串方法的使用 //length();返回字符串的长度 //charAt(int index);返回指定位置的字符 //contains(String str);判断是否包含某个子字符串 String text = "Java永远滴神"; System.out.println(text.length());//返回text字符串长度 System.out.println(text.charAt(7));//返回下标位置为7的字符 System.out.println(text.contains("Java"));//判断text字符串是否包含"Java" System.out.println(text.contains("C++"));//判断text字符串是否包含"C++" System.out.println("===========2============"); //toCharArray();返回字符串对应的数组 //indexOf(String str);返回str在字符串首次出现的位置 //lastIndexOf(String str);返回str在字符串最后出现的位置 System.out.println(Arrays.toString(text.toCharArray()));//Arrays.toString();是数组的打印方法 System.out.println(text.indexOf("a"));//寻找字符串"a"在当前字符串首次出现的位置 System.out.println(text.indexOf("a",2));//寻找字符串"a"在当前字符串的下标为2开始首次出现的位置 System.out.println(text.lastIndexOf("a"));//寻找字符串"a"在当前字符串最后出现的位置 System.out.println("===========3============"); //trim();去掉字符串前后的空格 //toUpperCase();把小写转换成大写 //toLowerCase();把大写转换成小写 //starWith(String str);判断字符串是否以str开头 //endWith(String str);判断字符串是否以str结尾 String text1 = " Hello World "; System.out.println(text1.trim());//去掉字符串前后的空格 System.out.println(text1.toUpperCase());//把text1的小写转换成大写 System.out.println(text1.toLowerCase());//把text1的大写转换成小写 System.out.println(text.startsWith("Java"));//判断text字符串是否以"Java"开头 System.out.println(text.endsWith("永远滴神"));//判断text字符串是否以"永远滴神"结尾 System.out.println("===========4============"); //replace(char oldChar,char newChar);用新的字符或字符串来替换旧的字符或字符串 //split(String str);根据str对当前字符串进行拆分成数组 System.out.println(text1.replace("World","Java World"));//将text1中的"World"替换成"Java Word" System.out.println(Arrays.toString(text.split("永远")));//根据"永远"将text拆分成数组 //split();进阶 String str = "Java is the best programing language,java nice"; System.out.println(Arrays.toString(str.split("[ ,]+"))); //split("[ ,]+")的意思是根据" "或","来拆分成数组,+是指可以是多个" "或者",",该表示方式来自正则表达式 System.out.println("===========5============"); //equals();判断两个对象内容是否相同 //equalsIgnoreCase();判断两个对象内容是否相同(忽略大小写) //compareTo();比较两个字符串的大小 //compareToIgnoreCase();比较两个字符串的大小(忽略大小写) //substring(int beginIndex);从指定下标开始截取字符串 String s1 = "hello"; String s2 = "HELLO"; System.out.println(s1.equals(s2));//比较s1和s2的内容 System.out.println(s1.equalsIgnoreCase(s2));//忽略大小写的比较 System.out.println(s1.compareTo(s2));//按大小比较s1,s2 System.out.println(s1.compareToIgnoreCase(s2));//忽略大小写的比较 String s3 = "helloworld";//s1和s3前面一样,s3比s1多了"world" System.out.println(s1.compareTo(s3));//这时候compareTo();方法比的是长度 String s4 = "HELLOWORLD"; System.out.println(s1.compareToIgnoreCase(s4));////这时候compareToIgnoreCase();方法比的也是长度 System.out.println(s1.substring(1));//从下标为1开始截取字符串 System.out.println(s1.substring(1,3));//截取下标为1到下标为3的字符串 } }

输出

===========1============ 8 true false ===========2============ [J, a, v, a, 永, 远, 滴, 神] 1 3 3 ===========3============ Hello World HELLO WORLD hello world true true ===========4============ Hello Java World [Java, 滴神] [Java, is, the, best, programing, language, java, nice] ===========5============ false true 32 0 -5 -5 ello el

1|3案例演示

  • 已知String str = "this is a text";

    • 需求:
      • 将 str 中的单词单独获取出来
      • 将 str 中的 text 替换为 practice
      • 在 text 前面插入一个 easy
      • 将每个单词的首字母改为大写
  • 示例:

    import java.util.Arrays; public class Demo03 { public static void main(String[] args) { String str = "this is a text"; String[] array = str.split(" ");//以空格分割成数组 System.out.println(Arrays.toString(array)); String str1 = str.replace("text","practice");//"text"替换成"practice" System.out.println(str1); String str2 = str.replace("text","easy text");//"text"前面加上"easy" System.out.println(str2); for (int i = 0; i < array.length; i++) { //charAt(0);获取首字母,然后通过Character.toUpperCase();把字母变成大写 char upperfrist = Character.toUpperCase(array[i].charAt(0)); //再用substring();方法截取字符串和大写首字母拼接 array[i] = upperfrist+array[i].substring(1); } System.out.println(Arrays.toString(array)); } }

    输出

    [this, is, a, text] this is a practice this is a easy text [This, Is, A, Text]

__EOF__

本文作者userName
本文链接https://www.cnblogs.com/dt746294093/p/14664899.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   D..T  阅读(74)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示