Java String 类

简介: 怎么描述String的重要性呢?我想我无论怎么描述都没办法表达它的重要性,所以,认真学习String对于我们开发人员来说是非常重要的。 首先我们要明白,String类是用来操作和创建字符串的。比如说: String str = “我是一个字符串”; String str2 = new String(“我也是一个字符串”) 接着需要明白的也是最需要记住的,String不属于java内置数据类型,也就是不属于8种基本数据类型。

怎么描述String的重要性呢?我想我无论怎么描述都没办法表达它的重要性,所以,认真学习String对于我们开发人员来说是非常重要的。
首先我们要明白,String类是用来操作和创建字符串的。比如说:
String str = “我是一个字符串”;
String str2 = new String(“我也是一个字符串”)
接着需要明白的也是最需要记住的,String不属于java内置数据类型,也就是不属于8种基本数据类型。String是一个对象,并且,String是一个非常特殊的现象,它有别的对象没有的一些特征。
image

对于上面两种创建字符串的方式我来具体的分析一下:
1、 对于String来说,有一个特殊的String pool,专门存储字符串数据。
2、 String str = “我是一个字符串”的创建过程:首先、java会去到String pool 寻找有没有一个值为“我是一个字符串”的东西,如果有,则返回该东西的位置给str对象,如果没有,则创建一个,并且把位置返回。
3、 对于String str2 = new String(“我也是一个字符串”)来说,java是先在堆内存中创建一个 “我也是一个字符串”的内存区域,并且把该区域的位置返回给str2,接着,还会再一次的去String pool里面检查是否有一个值为“我也是一个字符串”的东西,若没有,则创建一个。
由此可知:
1、我们现在可以知道的是,直接吧一个字符串赋值给一个String对象时,该字符串最多创建一次或者0次,为 new String(“…”)会创建1次或者是两次字符串。
2、变量的名称都是存储在栈里面的。
3、我们所持的变量(str str2)只是一个具体对象的内存地址,这个地址也可以叫做句柄。
需要做出补充的是:
1、 String类已经对Object类的equals方法进行了覆盖
2、 在比较两个对象是否相等的时候,使用的用必须是equals方法,而不等使用“==”,我会在后续的写作中进行说明。

String常用方法
(1)length() 字符串的长度
  例:char chars[]={'a','b'.'c'};
    String s=new String(chars);
    int len=s.length();

(2)charAt() 截取一个字符
  例:char ch;
    ch="abc".charAt(1); 返回'b'
(3)getBytes()获取对应字节数组

    例:String ok="apple";
           byte[]bytes=ok.getBytes();
           for(int i=0;i<bytes.length;i++)
                 System.out.println(bytes[i]);//输出字节数组,范围为-128---127

(4)indexOf()和lastIndexOf()
   indexOf() 查找字符或者子串第一次出现的地方。
   lastIndexOf() 查找字符或者子串是后一次出现的地方。
(5)substring()  

       它有两种形式,第一种是:String substring(int startIndex) 

  第二种是:String substring(int startIndex,int endIndex)
(6)concat() 连接两个字符串
(7)replace() 替换
  它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下:
  String replace(char original,char replacement)
  例如:String s="Hello".replace('l','w');
  第二种形式是用一个字符序列替换另一个字符序列,形式如下:
  String replace(CharSequence original,CharSequence replacement)
(8)trim() 去掉起始和结尾的空格

(9)valueOf() 转换为字符串

(10)toLowerCase() 转换为小写

(11)toUpperCase() 转换为大写
(12)startsWith()和endsWith()  

    startsWith()方法决定是否以特定字符串开始,endWith()方法决定是否以特定字符串结束

更多方法请参考String的API

目录
相关文章
|
2月前
|
Java 编译器 API
Java 密封类:精细化控制继承关系
Java 密封类:精细化控制继承关系
268 83
|
28天前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
275 120
|
3月前
|
IDE Java 数据挖掘
Java 基础类从入门到精通实操指南
这份指南专注于**Java 17+**的新特性和基础类库的现代化用法,涵盖开发环境配置、数据类型增强(如文本块)、字符串与集合处理进阶、异常改进(如密封类)、IO操作及实战案例。通过具体代码示例,如CSV数据分析工具,帮助开发者掌握高效编程技巧。同时提供性能优化建议和常用第三方库推荐,适合从入门到精通的Java学习者。资源链接:[点此下载](https://pan.quark.cn/s/14fcf913bae6)。
179 36
|
4月前
|
存储 安全 Java
【高薪程序员必看】万字长文拆解Java并发编程!(7):不可变类设计指南
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中Java不可变类设计指南,废话不多说让我们直接开始。
74 0
|
2月前
|
自然语言处理 Java Apache
在Java中将String字符串转换为算术表达式并计算
具体的实现逻辑需要填写在 `Tokenizer`和 `ExpressionParser`类中,这里只提供了大概的框架。在实际实现时 `Tokenizer`应该提供分词逻辑,把输入的字符串转换成Token序列。而 `ExpressionParser`应当通过递归下降的方式依次解析
198 14
|
2月前
|
Java API
Java API中Math类功能全景扫描
在实际使用时,这些方法的精确度和性能得到了良好的优化。当处理复杂数学运算或高精度计算时,`Math`类通常是足够的。然而,对于非常精细或特殊的数学运算,可能需要考虑使用 `java.math`包中的 `BigDecimal`类或其他专业的数学库。
88 11
|
2月前
|
Java API
深入解析Java API中Object类的功能
了解和合理运用 Object类的这些方法,对于编写可靠和高效的Java应用程序至关重要。它们构成了Java对象行为的基础,影响着对象的创建、识别、表达和并发控制。
61 0
|
2月前
|
安全 Java
JAVA:Collections类的shuffle()方法
`Collections.shuffle()` 是 Java 中用于随机打乱列表顺序的工具方法,适用于洗牌、抽奖等场景。该方法直接修改原列表,支持自定义随机数生成器以实现可重现的打乱顺序。使用时需注意其原地修改特性及非线程安全性。
103 0

热门文章

最新文章