String类概述

该类被final修饰,无子类,不可被复写。创建的对象一旦初始化,其内容不可被改变。

String类复写了Object类中的equals()定义了自己的独特内容,该方法用于判断字符串相同。

例:

String s1 = "abc";

String s2 = new String("abc");

System.out.println(s1==s2);

System.out.println(s1.equals(s2));

结果显示

false

true

面试中常考:这里的s1,s2有何区别?

s1在内存中一个对象,s2有两个对象。因为内存中有一个常量池存放字符串。字符串被存放进去以后,以后创建新的字符串时会优先在常量池中寻找并组合而成,而s2是创建一个全新的字符串。如:

String s1 = "abc";

String s3 = "abc";

System.out.println(s1==s2);

结果将是true,即s1和s3指向了同一个对象。

常见方法

1.获取

1.1 字符串长度。

int length():获取长度。

1.2 根据位置获取位置上的某个字符。

char charAt(int index) :返回指定索引处字符。

1.3 根据字符获取该字符在字符串中的位置。如果没有找到返回-1.

int indexOf(int ch):找到该字符第一次出现的位置

int indexOf(int ch,int fromIndex):从fromIndex处开始索引。

int indexOf(String str)

int indexOf(String str,int fromIndex):从fromIndex检索字符串str的位置。

相反的,如果需要反向索引,有类似方法

int lastIndexOf(*) 从右往左索引,然后**输出其在字符串数组中的位置**

2.判断

2.1 字符串中是否包含某一个子串。

boolean contains(CharSequence str);

★特殊之处:int indexOf(str)也可以检索str是否存在。

2.2 字符串中是否有内容。

boolean isEmpty():原理就是判断length是否为0

2.3 字符串是否是以指定内容开头。

boolean startWith(String str);

2.4 字符串是否是以指定内容结尾

boolean startWith(String str);

应用场景:通过判断文件名检索所需要的文件

2.5 判断字符串内容是否相同

boolean equals(str)

2.6 判断内容是否相同并忽略大小写

boolean equalsIgnoreCase(str)

3.转换

3.1 将字符数组转成字符串

构造函数

String(char[])

String(char[],offset,count)将字符数组一部分转成字符串

例:

char[] arr = {'a','b','c','d','e','f'};

String s = new String(arr,1,3);

结果将是 bcd.因为数组下角标从0开始,故这里起始位是b,取3个字符,即为bcd.

静态方法:需要跟在String后使用

static String copyValueOf(char[]);

static String copyValueOf(char[],offset,count);

3.2 将字符串转成字符数组

char[] toCharArray();

3.3 将字节数组转成字符串

String(byte[]);

String(byte[],offset,count);

3.4 将字符串转成字节数组

byte[] getBytes();

3.5 将基本数据类型转成字符串

static Sting valueOf();

特殊:字符串和字节数组在转换过程中是可以指定编码表的

4.替换

String replace(old char/str,new char/str);

注意:由于字符串一旦被创建不能被改变,所以这里的替换后将会返回一个新字符串副本,而原来的字符串不会有变换

5.切割

String[] split(regex) 以regex为分割符号进行分割

6.子串

String substring(begin);从指定出开始到结尾

String substring(begin,end);从begin处开始到end处结束,之间的子串。**包括begin但不包括end.**

String s = "abcdef";

s1 = s.substring(2);

s2 = s.substring(2,4);

结果s1=cdef,s2=cd。

7.转换

7.1 将字符串转成大写或者小写

String toUpperCase();

String toLowerCase();

7.2 将字符串两端多个空格去除

String trim();

7.3 对两个字符串进行自然顺序的比较

int compareTo(str);**比较两个字符串大小,并返回第一个不同的字符之间的ASCII码值差值。**

java string类方法_Java基础学习——String类及其方法相关推荐

  1. java冰法_Java基础学习笔记二 Java基础语法

    注释 注释用来解释和说明程序的文字,注释是不会被执行的. 单行注释 //这是一条单行注释 public int i; 多行注释 /*这是 * 一段注释, * 它跨越了多个行*/ public void ...

  2. java 注解 对象_Java基础-学习使用Annotation注解对象

    Java基础-学习使用Annotation注解对象 注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某 个时刻非常方便地使用这些数据 1-1:基本语法 Java S ...

  3. java数据成员_Java基础教程之对象的方法与数据成员

    在Java基础教程之从Hello World到面向对象一文中,我们初步了解了对象(object).对象中的数据成员表示对象的状态.对象可以执行方法,表示特定的动作. 此外,我们还了解了类(class) ...

  4. java定义构造方法_JAVA基础学习之路(三)类定义及构造方法

    类的定义及使用 一,类的定义 classBook {//定义一个类intprice;//定义一个属性intnum;public static int getMonney(int price, intn ...

  5. java 中成员变量的名字和类的方法的名字可以一样.

    java 中成员变量的名字和类的方法的名字可以一样. public class fourone {public static void main(String[] args) {int first[] ...

  6. 尚硅谷Java基础学习--常用类部分例题解答(仅使用String类方法)

    以下为不借助StringBuffer等类的方法,直接使用String类方法及算法实现: No.1 public class Test1010 {public static void main(Stri ...

  7. java引入string类_Java基础教程——String类

    String类 Java程序中的所有字符串字面值(如 "abc" )都是String的实例 字符串是常量(因为 String 对象是不可变的,所以可以共享) 字符串的本质是字符数组 ...

  8. java同步锁售票_Java基础学习笔记: 多线程,线程池,同步锁(Lock,synchronized )(Thread类,ExecutorService ,Future类)(卖火车票案例)...

    学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线程:线程是 ...

  9. java string hash变量_java基础(六)-----String性质深入解析

    本文将讲解String的几个性质. 一.String的不可变性 对于初学者来说,很容易误认为String对象是可以改变的,特别是+链接时,对象似乎真的改变了.然而,String对象一经创建就不可以修改 ...

最新文章

  1. SQL Server使用侦听器IP访问时遇到The target principal name is incorrect. Cannot generate SSPI context...
  2. 从一个帖子看部分大学生的学习心态
  3. Java Inner Class 内部类
  4. 【直观理解】为什么梯度的负方向是局部下降最快的方向?
  5. CEF避坑指南(一)——编译并自制浏览器
  6. 26所高校联合建议:尽快设置人工智能本科专业
  7. 机器学习笔记(1)决策树
  8. LeetCode 3Sum (Two pointers)
  9. 随机森林评估特征重要性
  10. 5V升压8.4V,锂电池充电管理芯片
  11. 通过注册表实现程序开机自启动的方法
  12. smtp协议与pop3协议
  13. 淘宝客引流的两个高效渠道
  14. redis 基础教程
  15. 【预测】中国2015年将陷入20年来最严重的失业潮和减薪潮!
  16. Stephen Wolfram
  17. 2022年版中国人工智能芯片行业专项调研及投资前景方向预测报告
  18. 手机安全卫士(二)----- APP功能分析
  19. 华为Taurus云原生数据库论文分析
  20. 数据库间数据迁移常见工具和方法

热门文章

  1. BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演)
  2. mysql insert 1062_一则 insert 报 ERROR 1062 (23000): Duplicate entry 'xxx' for key,请帮忙看看...
  3. 多层次报表的性能优化方案
  4. Hash——字符串匹配(求s1在s2中出现的次数)
  5. Activiti数据库
  6. SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-003-@Conditional根据条件生成bean及处理profile...
  7. Python于*args 和**kwargs使用
  8. TortoiseGit for windows安装与配置
  9. C++利用访函数进行选择排序
  10. 【old】简单易用的鹰眼类源代码下载