java字符串冒号处理_一文教你Java字符串处理(String,StringBuffer,StringBuild)

本文详细介绍了Java中字符串处理的各个方面,包括String的创建、字符串常量池、常用方法,以及StringBuffer和StringBuilder的使用与区别。通过实例解析了String的构造函数、操作方法,强调了字符串不可变性与性能优化的重要性。同时,对比分析了StringBuffer和StringBuilder在多线程安全和性能上的差异。文章最后总结了字符串操作的关键知识点,适合Java初学者和开发者参考学习。
摘要由CSDN通过智能技术生成

前言

本文篇幅较长,但都是满满的干货,请大家耐心观看,相信会有不小的收获。本人在总结的过程中也收获了很多的知识,也希望大家可以一起借鉴学习下,希望大家最后都能有所收获!

再言

字符串的分类在java.lang包中,定义了两个大类来表示字符串: String和 String Buffer(StringBuild)类,它封装了字符串的数据结构,并定义了许多方法来处理字符串。Java将字符串分为两类的目的是为了提高系统对字符串的处理效率:

1.在程序运行中值不会改变的字符串,用 String类来存储和维护;

如果能够确信程序中使用的字符串的值在运行过程中不会改变,应尽量使用 String类对象;

2.在程序运行中值会改变的字符串,也称为带字符缓冲区的字符串,用 StringBuffer(StringBuild)类来存储和维护。

如果使用的字符串值在程序运行过程中会改变,就要使用 StringBuffer(StringBuild)类个对象,这样可以提高程序的运行性能。

【注意】Java提供的 String和 StringBuffer(StringBuild)类都定义为 final,意思是不能用它们派生出子类,这样做的目的是为了对字符串的操作进行优化。

String

   String类用于存储和维护值不变的字符串对象,String类的定义原型如下:
//String定义原型public final class java.lang.String extends java.lang.Object       { }

我们可以清楚的看出来,String该类的父类是一个Object类,由final进行修饰,表明不能产生子类(如导言所说),并且是一种工具类(由public修饰)。

了解了String原型,还可以看一下String源码:

//String部分源码public final class String    implements java.io.Serializable, Comparable, CharSequence{    /** The value is used for character storage. */    private final char value[];     /** The offset is the first index of the storage that is used. */    private final int offset;     /** The count is the number of characters in the String. */    private final int count;     /** Cache the hash code for the string */    private int hash; // Default to 0     /** use serialVersionUID from JDK 1.0.2 for interoperability */    private static final long serialVersionUID = -6849794470754667710L;     ........}

从上面的源码中可以看出来几点:

1)String类是final类并且它的成员方法也都默认为final方法,意味着String类和其中的方法都不可以被继承。

注:在Java中,被final修饰的类是不允许被继承的,并且该类中的成员方法都默认为final方法。

2)上面列举出了String类中的部分成员属性,从上面可以看出String类其实是通过char数组来保存字符串的。也可以说char是String的根本属性。

创建String字符串

d2bd3355909a074edc451510265597e9.png

创建String字符串可以分为两种情况:

(1)使用 "" 引号创建字符串;

(2)使用new关键字创建字符串。

方法一

这个方法中使用""创建字符串比较的简单:String 变量名="你自己需要定义的值";

方法二

在这个方法中的创建方式就会有很多种——String和其他类一样,可以用new操作符,并且调用该类的构造函数创建这种类型的对象。String类的构造函数具有以下11种格式:

public String ()public String(String value)public String (char value[])public String(char value[], int offset, int count)public String(byte ascii[], int hibyte, int offset, int count)public String(byte ascii[], int hibyte)public string(byte bytes[], int offset, int length, String enc)public string(byte bytes[],String enc)public String(byte bytes [], int offset, int length)public String(byte bytes[])public String (StringBuffer buffer)

构造函数各个参数的含义可以自己参阅有关的手册,这里就对几个经常使用的构造函数进行解析:

public String ()

不带参数的构造函数,采用该构造函数创建一个不含字符的空对象。eg:String str=new String();

public String(String value)

采用参数value对象的值构造一起新的String对象。eg:

  String str1="YYH";  String str2=new String("YYH");  System.out.println(str2);                 //显然str2对象的内容是“YYH”  System.out.println(str1==str2);       //显然是false,这是因为str1和str2不是同一个对象,尽管他们的内容相同。

public String (char value[])

采用一个字符数组作为参数,把这个字符数组的内容转换为字符串,并赋予新建的对象。eg:

           char    a[]={'Y','Y','H'};      //字符数组           String str=new String(a);   //字符串str的内容是“YYH”

public String(char value[], int offset, int count)

从对字符数组value指定的起始字符下标offset开始,将字符个数为count的字符字串作为参数,创建一个新的String对象。eg:

char a[]={'Y','Y','H'}; //字符数组

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值