热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java常用类之一:String类的使用方法和注意事项

Java常用类:String类目录Java常用类:String类StringString类常用方法案例演示String字符串是常量,创建之后不可改变字符串字面值存储在字符串池中,可

Java常用类:String类

目录



  • Java常用类:String类

    • String

    • String类常用方法

    • 案例演示






String



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



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



  • 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()而不是==,==是比较字符串的地址
    }
    }





String类常用方法



  • 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



案例演示



  • 已知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 //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]




推荐阅读
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • Java 中 Writer flush()方法,示例 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍如何解决在 IIS 环境下 PHP 页面无法找到的问题。主要步骤包括配置 Internet 信息服务管理器中的 ISAPI 扩展和 Active Server Pages 设置,确保 PHP 脚本能够正常运行。 ... [详细]
  • 本文详细探讨了KMP算法中next数组的构建及其应用,重点分析了未改良和改良后的next数组在字符串匹配中的作用。通过具体实例和代码实现,帮助读者更好地理解KMP算法的核心原理。 ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文介绍了如何使用 Spring Boot DevTools 实现应用程序在开发过程中自动重启。这一特性显著提高了开发效率,特别是在集成开发环境(IDE)中工作时,能够提供快速的反馈循环。默认情况下,DevTools 会监控类路径上的文件变化,并根据需要触发应用重启。 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
author-avatar
妖泪蓝夕_746
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有