一起来了解一下Java中的String类吧!!!

这篇具有很好参考价值的文章主要介绍了一起来了解一下Java中的String类吧!!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简单认识Java中的String类

一、认识String类的重要性

在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者字符指针,可以使用标准库提
供的字符串系列函数完成大部分操作,但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想,而字
符串应用又非常广泛,因此Java语言专门提供了String类。

所以在这里,博主提一下,Java中的String是一种引用数据类型,并不是像int、char、float等这种基础数据类型。!!!

(1)字符串""这个事物,Java中也是一个对象,对象的描述类,java.lang.String,提供很多方法操作字符串。

(2) 使用频率非常高:身高,年龄,学历,工作经历,婚姻状况,人生目标。

(3)学会学好String类,提供操作方法,方法必须要熟练。


二、字符串的构造

第一种:

String str1 = "hello"; 这种是最简洁的表达方式,注意str1中存放的是该字符串的地址.

第二种:

String str2 = new String(“world”);

第三种:

char[] chars = {'j','a','v','a'};

String str3 = new String(chars);

总结:(1)这三种方式创建字符串都是一样的,在对象中存储字符串的地址.

(2)java中的字符串不像C语言中末尾还有‘/0’存在

字符串在内存中存储的样子(这里先不管常量池的问题):

一起来了解一下Java中的String类吧!!!,My_Java,java,开发语言,idea,python,jvm


三、关于字符串中常用的操作

1、String对象的比较

Demo:

String str1 = new String("hello");
String str2 = new String("world");
System.out.println(str1.equals(str2));


//代码运行的结果为:false

这是因为,new的对象的地址不一样,而equals没有重写之前是根据对象的地址去判断是否一样,所以这里输出为false.

System.out.println(str1.equalsIngnoreCase(str2));此语句是忽略字符串的大小去比较.

2、比较两字符串的大小

Demo:

       String s1 = new String("hello");
       String s2 = new String("world");
       int ret = s1.compareTo(s2);
       if(ret>0) {
           System.out.println("s1>s2");
       }else if(ret<0) {
           System.out.println("s1<s2");
       }else {
           System.out.println("s1=s2");
       }


//运行结果为:s1<s2

关于compareTo函数,这个函数是用来比较两个字符串的大小,从第一个字符开始,根据ascll码值比较,返回一个整数compareToIngnoreCase函数是忽略大小写进行比较.

3、字符串查找

(1)根据下标来找元素

Demo:

       String str = "abcdef";
       for(int i = 0;i<str.length();i++) {
           char ch = str.charAt(i);//chatAt函数是返回下标为i的字符
           System.out.print(ch );
       }


//这里输出的结果为a b c d e f

(2)找某个字符在字符串中的下标

String str = "abcdef";
System.out.print(str.indexOf('c') );

//2

此函数是找到目标字符,并返回目标字符的下标。但是如果目标字符有多个相同的字符,就会返回第一个字符的下标.

String str = "abcdefcc";
System.out.print(str.indexOf('c',3) );

//6

从下标为3的位置开始找

(3)在字符串中找字符串

Demo:

String str = "abcdefcc";
System.out.print(str.indexOf("abc"));

//0

返回最先找到的那串字符串的第一个字符的下标.

String str = "abcdefabc";
System.out.print(str.indexOf("abc",3));

//6

从下标位置为3的字符开始找字符串.

(4)从后往前找字符

Demo:

String str = "abcdef";
System.out.print(str.lastIndexOf('c'));

//2

此函数作用为从后往前找目标字符,返回下标.

String str = "abcdcefc";
System.out.print(str.lastIndexOf('c',5));

//4

从下标为5的位置从后往前开始找,找到返回下标.

(5)从后往前找字符串

Demo:

String str = "abcdcefabcfsdfabc";
System.out.print(str.lastIndexOf("abc"));

//14

从后往前开始找字符串,找到返回此字符串的首字符下标.

String str = "abcdcefabcfsdfabc";
System.out.print(str.lastIndexOf("abc",12));

//7

从下标为12的位置开始找字符串,找到返回此字符串的首字符下标.

4、类型之间的转化

(1)数值和字符串转化

该情况使用valueOf函数,后面可以跟任何数据类型,比如int、char、boolean、甚至是一个类等等都是可以的.

String str = String.valueOf(1234);

String str = String.valueOf(new Integer(1234));

(2)字符串转成其他数据类型

这种情况使用各种数据类型的包装类中的方法,如parseInt()、parseDouble()等

double num2 = Double.parseDouble("3.14");

int num1 = Integer.parseInt("1234");

(3)大小写之间的转化

Demo:

//小写-->大写
        String str1 = "hello";
        String ret1 = str1.toUpperCase();
        System.out.println(ret1);

//大写-->小写
        String str2 = "HELLO";
        String ret2 = str2.toLowerCase();
        System.out.println(ret2);

/*
HELLO
hello
*/

(4)字符串转数组

Demo:

String str = "abcdefg";
char[] chars = str.toCharArray();
System.out.println(Arrays.toString(chars));

//[a, b, c, d, e, f, g]

toCharArray()函数是将字符串变成数组类型,Arrays.toString()函数就是以数组的形式输出.

(5)字符串替换

此函数并不是在原函数上替换,而是返回新的字符串Demo:

        String str = "ababcbacabcdef";
        String ret = str.replace('a','q');//将字符串里面的所有'a'换成'q'
        System.out.println(ret);

        String ret2 = str.replace("ab","wz");//将字符串中的"ab"换成"wz"
        System.out.println(ret2);

        String ret3 = str.replaceAll("abc","mnpl");//将字符串中所有的"abc"换成"mnpl"
        System.out.println(ret3);
        
        String ret4 = str.replaceFirst("abc","uuuu");//将字符串中第一个"abc"换成"uuuu"
        System.out.println(ret4)
            
            
/*
qbqbcbqcqbcdef
wzwzcbacwzcdef
abmnplbacmnpldef
abuuuubacabcdef
*/

(6)字符串拆分

Demo:

String str = "zhangsan&wangwu";
String[] ret = str.split("&");
System.out.println(Arrays.toString(ret));

//[zhangsan, wangwu]

split函数是通过括号里面的字符将字符串进行拆分,返回的也是一个字符串数组.

String[] ret = str.split("&",2);可以进行组数的限制,这样就是分为两组

特殊的拆分:

Demo:

        String str = "127.00.0.1";
        String[] ret = str.split("\\.");
        for(String x:ret) {
            System.out.println(x);
        }

两个“\\”相当于一个“\”,然后“\”和“.”才是一个真正的“.”号.

注:

  • 字符“\”,”*”,”+”都得加上一个转义字符,前面加上“\\”
  • 如果要按照“\”分的话,就写成”\\\\“
  • 如果一个字符串中有多个分隔符,可用“|”作为连接符
    • str.split("= | &");

(7)字符串的拆分

Demo:

        String str = "helloworld!";
        String ret1 = str.substring(1);//从下标为1的位置开始截取
        System.out.println(ret1);

        String ret2 = str.substring(1,4);//从下标为1的位置开始,取到下标为4的位置,左闭右开
        System.out.println(ret2);

/*
elloworld!
ell
*/

(8)字符串中的trim函数

Demo:

        String str = "  hello hello  ";
        String ret = str.trim();
        System.out.println(ret);

//hello hello

trim函数是去除字符串左右两边的空格,中间的空格不会被去除


四、StringBuffer和StringBuilder

由于String的不可更改特性,为了方便字符串的修改,Java中又提供StringBuilder和StringBuffer类,这两个也是类,也可以表示字符串.

1、String、StringBuffer、StringBuilder的区别

  • String类的对象创建了之后,内容就不可以修改,而StringBuffer和StringBuilder的对象创建了之后内容可以修改
  • StringBuffer和StringBuilder大部分的功能相似
  • StringBuffer采用同步处理,是线程安全的
  • StringBuilder未采用同步处理,不是线程安全的

2、关于String对象创建了之后,内容不能改变的原因

这是因为源码中String类中有一个byte[]数组,这个数组被final修饰,所以数组一旦创建就不可以被修改,并且被final修饰的引用一旦指向某个对象之后,不可再指向其他对象.

注意:String和StringBuilder类不能直接转换。如果要想互相转换,可以采用如下原则:

  • String变为StringBuilder: 利用StringBuilder的构造方法或append()方法
  • StringBuilder变为String: 调用toString()方法。

3、常用方法

方法 说明
StringBuff append(String str) 在尾部追加,相当于String的+=,可以追加:boolean、char、char[]、double、float、int、long、Object、String、StringBuff的变量
char charAt(int index) 获取index位置的字符
int length() 获取字符串的长度
int capacity() 获取底层保存字符串空间总的大小
void ensureCapacity(int mininmumCapacity) 扩容
void setCharAt(int index,char ch) 将index位置的字符设置为ch
int indexOf(String str) 返回str第一次出现的位置
int indexOf(String str, int fromIndex) 从fromIndex位置开始查找str第一次出现的位置
int lastIndexOf(String str) 返回最后一次出现str的位置
int lastIndexOf(String str,int fromIndex) 从fromIndex位置开始找str最后一次出现的位置
StringBuff insert(int offset, String str) 在offset位置插入:八种基类类型 & String类型 & Object类型数据
StringBuffer deleteCharAt(int index) 删除index位置字符
StringBuffer delete(int start, int end) 删除[start, end)区间内的字符
StringBuffer replace(int start, int end, String str) 将[start, end)位置的字符替换为str
String substring(int start) 从start开始一直到末尾的字符以String的方式返回
String substring(int start,int end) 将[start, end)范围内的字符以String的方式返回
StringBuffer reverse() 反转字符串
String toString() 将所有字符按照String的方式返回

由于这些方法较多,博主就不在这里一一演示了,大家可以自己下去敲敲哦。


好啦,本期的博客带各位小伙伴们简单认识了String类,如果各位小伙伴还有不懂的问题或者文章有错误的地方,请后台私信告诉博主!!!

路再远也会有终点,夜再长也会有尽头,雨再大也会有停的时候。
一起来了解一下Java中的String类吧!!!,My_Java,java,开发语言,idea,python,jvm文章来源地址https://www.toymoban.com/news/detail-598646.html

到了这里,关于一起来了解一下Java中的String类吧!!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java中的String字符串练习

    目录 Java中的String字符串练习 01-用户登录 02-遍历字符串并统计字符个数 03-字符串拼接 04-字符串反转 注意点 05-金额转化(简单) 代码解释: 06-手机号屏蔽 07-身份证号码查看 易错点: 08-敏感词替换 注意点 toCharArray() 是Java中的一个方法,它用于将字符串转换为字符数组。 方法签

    2024年03月28日
    浏览(62)
  • Java中的字符串String

    目录 一、常用方法 1、字符串构造 2、String对象的比较 (1)、equals方法 (2)、compareTo方法 (3)、compareToIgnoreCase方法(忽略大小写进行比较) 3、字符串查找 4、转化 (1)数值和字符串转化 ​编辑 (2)大小写转换 (3)字符串转数组 (4)格式化 5、字符串替换 6、字符串

    2024年02月05日
    浏览(62)
  • Java中的String、StringBuffer和StringBuilder

    在 Java 中,字符串是最常用的数据类型之一。 Java 中有三种处理字符串的方式:String、StringBuffer 和 StringBuilder。它们都被设计为处理字符串操作,但是它们之间有所不同。本篇博客将会介绍 String、StringBuffer 和 StringBuilder 的区别以及如何在 Java 中使用这些类型。 在 Java 中,

    2024年02月02日
    浏览(41)
  • String类中的一些常用方法(JAVA)

    目录 字符串比较方法: boolean equals(Object anObject):  int compareTo(String s): int compareToIgnoreCase(String str) 字符串查找方法: char charAt(int index): int indexOf(int ch):  int indexOf(int ch, int fromIndex): int indexOf(String str): int indexOf(String str, int fromIndex): int lastIndexOf(int ch): int lastIndexOf(in

    2024年02月07日
    浏览(40)
  • Java中的String类getBytes()方法详解与实例

    简介 Java中的String类提供了getBytes()方法,用于将字符串转换为字节数组。该方法允许在不同的字符编码方式下进行转换,从而实现字符串和字节数据之间的互相转换。本文将详细解释getBytes()方法的用法和参数,提供完整的实例和代码,并给出运行结果和总结。 详解  在Java中

    2024年02月08日
    浏览(38)
  • 【JavaSE】Java基础语法(三十七):Java 中的 String 类(源码级别)

    String 表示 字符串类型,属于 引用数据类型 。Java 中 String 是 不可变 的。 在 Java 当中 双引号 括起来的字符串,是直接存储在“方法区”的“字符串常量池”当中的。 源码: 源码: 源码: 源码: 源码: 源码: 源码: 源码: https://blog.csdn.net/qq_44715943/article/details/116308837

    2024年02月06日
    浏览(47)
  • 在两道多线程基础题“顺序打印”中对比一下Java中的wait()和join()

    目录 一、基础 二、进阶 有三个线程,线程名称分别为:a,b,c,每个线程打印自己的名称。 需要让他们同时启动,并按 c,b,a的顺序打印。 这道题要求打印 cba,且只打印一次。如何保证线程 cba 的执行顺序?容易想到,只需要让这三个线程按一定顺序串行执行即可,采用

    2024年02月04日
    浏览(36)
  • 一起来了解Git的基础知识叭~~

    $ git init Initialized empty Git repository $ ls -al to see git $ touch file01.txt Init a empty file01.txt file $ git status To see modifiyed status $ git add . remove all modifyed files to index from workspace $ git add file.txt(FILENAME) : remove single modifyed file to index from workspace $ git commit -m “Your annotation” commit index file to reposit

    2023年04月27日
    浏览(45)
  • java中的String使用注意事项、StringBuilder、StringBuffer、StringJoiner

    String使用注意事项 这里第二次创造了0个对象是因为字符串常量池中已经有\\\"abc\\\" StringBuilder 注意StringBuilder支持链式编程 StringBuilder 线程安全与不安全的区别在于,当系统里存在很多人同时操作同一个StringBuilder就可能出bug,而StringBuilder不会。 StringJoiner

    2024年02月12日
    浏览(33)
  • Java中的String类的常用方法(对于字符串的常用操作)

    目录 一、获取指定索引的字符 二、 获取指定字符或者字符串的索引位置 三、判断字符串是否以指定内容开头或结尾 四、替换指定的字符或者是字符串 五、获取字符串的子串 六、将字符串转换为字符数组  七、比较字符串的内容是否相等  八、连接字符串 九、比较两个字

    2024年02月20日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包