5.7-全栈Java笔记:字符串String的常用方法

字符串String

String基础

1)String位于java.lang包中,Java程序默认导入java.lang包。

2)ava字符串就是Unicode字符序列,例如串“Java”就是4个Unicode字符J、a、v、a组成的。

3)Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义的类String,每个用双引号括起来的字符串都是String类的一个实例。

【示例1String类的实例


String e = ""  ; // 空字符串an empty string

String greeting = " Hello World   "; 

Java允许使用符号"+"把两个字符串连接起来

【示例2】字符串连接


String s1 = "Hello";

String s2 = "World! ";

String s = s1 + s2; //HelloWorld!

符号"+"把两个字符串按给定的顺序连接在一起,并且是完全按照给定的形式。

当"+"运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。

【示例3"+"连接符


int age = 18;

String s = "age is" + age;  //s赋值为age is 18

//这种特性通常被用在输出语句中:

System.out.println("age is" + age);

String类和常量池

1)全局常量池在每个VM中只有一份,存放的是字符串常量的引用值。

2)class常量池是在编译的时候每个class都有的,在编译阶段,存放的是常量的符号引用。

3)运行时常量池是在类加载完成之后,将每个class常量池中的符号引用值转存到运行时常量池中,也就是说,每个class都有一个运行时常量池,类在解析之后,将符号引用替换成直接引用,与全局常量池中的引用值保持一致。

阅读API文档

1)API文档如何阅读

  进入JDK安装目录下面的doc目录,点击index.html即可打开API文档。

图1 API文档

2)eclipse中将鼠标放到类和方法上,即可看到相关的注释说明;再按下F2即可将注释窗口固定。

字符串类常用的方法

字符串是我们最常使用的类。字符串类的方法我们必须非常熟悉!我们列出常用的方法,请大家熟悉。


char charAt(int   index)


返回字符串中第index个字符


boolean   equals(String other)


如果字符串与other相等,返回true


boolean   equalsIgnoreCase(String other)


如果字符串与other相等(忽略大小写),则返回true


int   indexOf(String str)


返回从头开始查找第一个子字符串str在字符串中的索引位置。如果未找到子字符串str,则返回-1


lastIndexOf()


返回从尾开始查找第一个子字符串str在字符串中的索引位置。如果未找到子字符串str,则返回-1


int length()


返回字符串的长度


String   replace(char oldChar,char newChar)


返回一个新串,它是通过用 newChar 替换此字符串中出现的所有oldChar而生成的


boolean startsWith(String   prefix)


如果字符串以prefix开始,则返回true


boolean endsWith(String   prefix)


如果字符串以prefix结尾,则返回true


String substring(int   beginIndex)


返回一个新字符串,该串包含从原始字符串beginIndex到串尾


String substring(int   beginIndex,int endIndex)


返回一个新字符串,该串包含从原始字符串beginIndex到串尾或endIndex-1的所以字符


String toLowerCase()


返回一个新字符串,该串将原始字符串中的所有大写字母改成小写字母。


String toUpperCase()


返回一个新字符串,该串将原始字符串中的所有小写字母改成大写字母。


String trim()


返回一个新字符串,该串删除了原始字符串头部和尾部的空格。

【示例4String类常用方法一


public class   StringTest1 {

public static void main(String[] args) {

String s1 = "core java";

String s2 = "Core Java";

System.out.println(s1.charAt(4));

System.out.println(s2.length());

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

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

System.out.println(s1.indexOf("java"));

System.out.println(s1.indexOf("apple"));

String s = s1.replace(‘ ‘, ‘&‘);

System.out.println("result   is :" + s);

}

}

【示例5String类常用方法二


public class   StringTest2 {

public static void main(String[] args) {

String s = "";

String s1 = "How are you?";

System.out.println(s1.startsWith("How"));

System.out.println(s1.endsWith("you"));

s = s1.substring(4);       System.out.println(s);

s = s1.substring(4,7);   System.out.println(s);

s = s1.toLowerCase();      System.out.println(s);

s= s1.toUpperCase(); System.out.println(s);

String s2 = "  How old are you!! " ;

s = s2.trim();   System.out.println(s);

System.out.println(s2); //???

}

}

字符串相等的判断

1)equals方法用来检测两个字符串内容是否相等。如果字符串s和t内容相等,则s.equals(t)返回true,否则返回false。

2)要测试两个字符串除了大小写区别外是否是相等的,需要使用equalsIgnoreCase方法。

3)判断字符串是否相等不要使用"=="

【示例6】忽略大小写的字符串比较


"Hello".equalsIgnoreCase("hellO");//true

【示例7】字符串的比较"=="equals()方法


public class TestStringEquals   {

public static void   main(String[] args) {

String g1="北京尚学堂";

String g2="北京尚学堂";

String g3 = new   String("北京尚学堂");

System.out.println(g1==g2);   //true指向同样的字符串常量对象

System.out.println(g1==g3);   //false  g3是新创建的对象

System.out.println(g1.equals(g3));  //true  g1和g3里面的字符串内容是一样的

}

}

g1、g2、g3变量的内存示意图:

示例7 内存分析图




「全栈Java笔记」是一部能帮大家从零到一成长为全栈Java工程师系列笔记。笔者江湖人称 Mr. G,10年Java研发经验,曾在神州数码、航天院某所研发中心从事软件设计及研发工作,从小白逐渐做到工程师、高级工程师、架构师。精通Java平台软件开发,精通JAVAEE,熟悉各种流行开发框架。

笔记包含从浅入深的六大部分:

A-Java入门阶段

B-数据库从入门到精通

C-手刃移动前端和Web前端

D-J2EE从了解到实战

E-Java高级框架精解

F-Linux和Hadoop

时间: 2024-08-06 12:29:00

5.7-全栈Java笔记:字符串String的常用方法的相关文章

10.1-全栈Java笔记:最全面的IO技术(一)

IO技术 对于任何程序设计语言而言,输入输出(Input/Output)系统都是非常核心的功能.程序运行需要数据,数据的获取往往需要跟外部系统进行通信,外部系统可能是文件.数据库.其他程序.网络.IO设备等等. 外部系统比较复杂多变,那么我们有必要通过某种手段进行抽象.屏蔽外部的差异,从而实现更加便捷的编程. 输入(Input)指的是:可以让程序从外部系统获得数据(核心含义是"读",读取外部数据).常见的应用: 1) 读取硬盘上的文件内容到程序.例如:播放器打开一个视频文件.word打

10.2-全栈Java笔记:最全面的IO技术(二)

上节我们聊到「IO技术概念及入门」这节我们继续聊一下IO技术的分类. Java中流的概念细分 按流的方向分类: 输入流:数据流向是数据源到程序(InputStream.Reader结尾的流) 输出流:数据流向是程序到目的地(OutPutStream.Writer结尾的流) 按处理的数据单元: 字节流:按照字节读取数据(InputStream.OutputStream)命名上以stream结尾的流一般是字节流. 字符流:按照字符读取数据(Reader.Writer).命名上以Reader/Writ

4.5-全栈Java笔记:垃圾回收机制

垃圾回收机制(Garbage  Collection) Java引入了垃圾回收机制,令C++程序员最头疼的内存管理问题迎刃而解.JAVA程序员可以将更多的精力放到业务逻辑上而不是内存管理工作上,大大的提高了开发效率. 垃圾回收原理和算法 1)内存管理 Java的内存管理很大程度指的就是对象的管理,其中包括对象空间的分配和释放. 对象空间的分配:使用new关键字创建对象即可 对象空间的释放:将对象赋值null即可.垃圾回收器将负责回收所有"不可达"对象的内存空间. 2)垃圾回收过程 任何

5.2-全栈Java笔记:面向对象的特征(一)继承 | 下

上节我们聊到「Java面向对象的特征:继承」这节我们继续聊一下继承的应用. Object类 Object类基本特性 Object类是所有Java类的根基类,也就意味着所有的JAVA对象都拥有Object类的属性和方法.如果在类的声明中未使用extends关键字指明其父类,则默认继承Object类. [示例1]Object类 public class Person { ... } //等价于: public class Person extends   Object { ... } toStrin

4.3-全栈Java笔记:面向对象的内存分析

面向对象的内存分析 为了让大家对于面向对象编程有更深入的了解,我们要对程序的执行过程中,内存到底发生了什么变化,进行剖析,让大家做到"心中有数",通过更加形象的方式理解程序的执行方式. 老鸟建议:       本节是为了让初学者更深入了解程序底层执行情况,为了完整的体现内存分析流程,会有些新的名词,比如:线程.Class对象.大家暂时可以不求甚解的了解,后期学了这两个概念再回头来看我们这篇内存分析,肯定收获会更大. Java虚拟机的内存可以分为三个区域:栈stack.堆heap.方法区

10.8-全栈Java笔记:序列化/反序列化的步骤和实例

本节我们详细讲解10.3节中提到的序列化和反序列化操作. 序列化和反序列化是什么 当两个进程远程通信时,彼此可以发送各种类型的数据. 无论是何种类型的数据,都会以二进制序列的形式在网络上传送.比如,我们可以通过http协议发送字符串信息:我们也可以在网络上直接发送JAVA对象.发送方需要把这个Java对象转换为字节序列,才能在网络上传送:接收方则需要把字节序列再恢复为Java对象. 把Java对象转换为字节序列的过程称为对象的序列化.把字节序列恢复为Java对象的过程称为对象的反序列化. 对象序

10.10-全栈Java笔记:Apache IOUtils和FileUtils的使用

JDK中提供的文件操作相关的类,功能非常基础,进行复杂操作时需要做大量编程工作.实际开发中,往往需要你自己动手编写相关的,尤其在遍历目录文件时,经常用到递归,非常繁琐. Apache-commons工具包中提供了FileUtils,可以让我们非常方便的对文件和目录进行操作. 本文就是让大家对FileUtils类有一个全面的认识,便于大家以后开发文件和目录相关功能. Apache IOUtils和FileUtils类库为我们提供了更加简单.功能更加强大的文件操作和IO流操作功能.非常值得大家学习和

10.3-全栈Java笔记:常用流详解(一)

 文件字节流 FileInputStream通过字节的方式读取文件,适合读取所有类型文件(图像.视频.文本文件等).Java也提供了FileReader专门读取文本文件. FileOutputStream 通过字节的方式写数据到文件,适合所有类型文件.Java也提供了FileWriter专门写入文本文件. [示例1]将文件内容读取到程序中.  import java.io.*; public class Demo02 { public static void main(String[] args

9.8-全栈Java笔记:Iterator(迭代器)接口

迭代器介绍 所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了Iterator接口的对象. Iterator对象称作迭代器,用以方便的实现对容器内元素的遍历操作. Iterator接口定义了如下方法: boolean hasNext();  //判断是否有元素没有被遍历 Object next();      //返回游标当前位置的元素并将游标移动到下一个位置 void remove(); //删除游标左面的元素,在执行完next之后该操作只能执行一次 图1