热门标签 | 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]




推荐阅读
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社区 版权所有