本文内容:

String类的概述

String类的使用步骤

String类的常用方法

本文目的:

能够使用String类的构造方法创建字符串对象

能够明确String类的构造方法创建对象,和直接赋值创建字符串对象的区别

能够使用文档查询String类的判断方法

能够使用文档查询String类的获取方法

能够使用文档查询String类的转化方法

一、String类

概述java.lang.String 类代表字符串。Java程序中所有的字符串文字(比如"abc")都可以被看成是实现此类的实例。类String中包括用在检查每一个字符串的方法,比如用于比较字符串,搜索字符串,提取字符串以及创建具有翻译为大写或者是小写的所有字符的字符串副本。

特点(1)字符串是不变的,字符串的值在创建以后是不可以被更改的

案例:

  1. public class var {
  2. public static void main(String[] args) {
  3. String str = "abc";
  4. str += "d";
  5. System.out.println(str);
  6. }
  7. }

运行结果:

特点(2)因为String对象是不可以变换的,所以它们才可以被共享。

  1. public class var {
  2. public static void main(String[] args) {
  3. //内存中只有一个“abc”被创建。
  4. String s1 = "abc";
  5. String s2 = "abc";
  6. }
  7. }

特点(3)"abc"等于char[ ] data={′a′,′b′,′c′}

  1. public class var {
  2. public static void main(String[] args) {
  3. char[] data={'a','b','c'};
  4. String str = new String(data);
  5. System.out.println(str);
  6. }
  7. }

运行结果:

3. 使用步骤

查看类

java.lang.String:此类不需要再导入

public String( ):初始化新创建的String对象,可以让它表示空字符序列

public String(char[ ] value):通过当前参数当中的字符数组来构造新的String

public String(byte[ ] bytes):通过使用平台的默认字符集解码当前参数中的字节数组来构造新的String

构造举例,代码如下所示:

  1. public class var {
  2. public static void main(String[] args) {
  3. //无惨构造
  4. String str0 = new String();
  5. //通过字符数组构造
  6. char[] data={'a','b','c'};
  7. String str1 = new String(data);
  8.  
  9. //通过字节数组构造
  10. byte[] bytes={97,98,99};
  11. String str2 = new String(bytes);
  12. }
  13. }

4.常用的方法

(1)判断功能的方法

案例:

  1. public class var {
  2. public static void main(String[] args) {
  3. String s1 = "hello";
  4. String s2 = "hello";
  5. String s3 = "HELLO";
  6. System.out.println("------------通过equals比较-----------------");
  7. if(s1.equals(s2)){
  8. System.out.println("s1.equals(s2): true");
  9. }
  10. if(!s1.equals(s3)){
  11. System.out.println("s1.equals(s3): false");
  12. }
  13. System.out.println("------------通过equalsIgnoreCase比较-----------------");
  14. if(s1.equalsIgnoreCase(s2)){
  15. System.out.println("s1.equals(s2): true");
  16. }
  17. if(s1.equalsIgnoreCase(s3)){
  18. System.out.println("s1.equals(s3): true");
  19. }
  20. }
  21. }

运行结果:

(2)获取功能的方法:

  1. public class var {
  2. public static void main(String[] args) {
  3. String s1 = "hello";
  4. //获取字符串长度
  5. System.out.println("字符串长度:"+s1.length());
  6. //拼接字符串
  7. String s2 = s1.concat("world");
  8. System.out.println("字符串s1拼上world后:"+s2);
  9. //获取指定位置元素
  10. char c1= s1.charAt(0);
  11. System.out.println("字符串s1第一位:"+c1);
  12. //获取字符串中出现指定元素的位置
  13. int i = s1.indexOf("e");
  14. System.out.println("字符串s1中‘e’所在位置:"+i);
  15. //截取字符串
  16. String s3 = s1.substring(0,2);
  17. System.out.println("截取字符串s1中1到2的元素:"+s3);
  18. }
  19. }

运行结果:

(3)转换功能的方法:

  1. public class var {
  2. public static void main(String[] args) {
  3. String s1 = "hello";
  4. //字符串转成字符数组
  5. char[] arr = s1.toCharArray();
  6. for (int i = 0; i < arr.length ; i++) {
  7. System.out.print(arr[i] + " ");
  8. }
  9. System.out.println();
  10. //转换成字节
  11. byte[] b1 = s1.getBytes();
  12. for (int i = 0; i < b1.length ; i++) {
  13. System.out.print(b1[i] + " ");
  14. }
  15. System.out.println();
  16. //字符替换
  17. String s2 = s1.replace("ll","LL");
  18. System.out.println("替换后的字符串为"+s2);
  19. }
  20. }

运行结果:

(4)分割功能的方法:

  1. public class var {
  2. public static void main(String[] args) {
  3. String s1 = "hello,world";
  4. String[] arr = s1.split(",");
  5. for (int i = 0; i < arr.length; i++) {
  6. System.out.println(arr[i]);
  7. }
  8. }
  9. }

运行结果:

参考:https://baijiahao.baidu.com/s?id=1622780499548219487&wfr=spider&for=pc

《Java基础知识》Java字符串详解的更多相关文章

  1. Java基础-面向接口编程-JDBC详解

    Java基础-面向接口编程-JDBC详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.JDBC概念和数据库驱动程序 JDBC(Java Data Base Connectiv ...

  2. java基础(3)--详解String

    java基础(3)--详解String 其实与八大基本数据类型一样,String也是我们日常中使用非常频繁的对象,但知其然更要知其所以然,现在就去阅读源码深入了解一下String类对象,并解决一些我由 ...

  3. Linux基础知识之挂载详解(mount,umount及开机自动挂载)

    Linux基础知识之挂载详解(mount,umount及开机自动挂载) 转载自:http://www.linuxidc.com/Linux/2016-08/134666.htm 挂载概念简述: 根文件 ...

  4. JAVA基础知识|java虚拟机(JVM)

    一.JVM简介 java语言是跨平台的,兼容各种操作系统.实现跨平台的基石就是虚拟机(JVM),虚拟机不是跨平台的,所以不同的操作系统需要安装不同的jdk版本(jre=jvm+类库:jdk=jre+开 ...

  5. java基础知识——Java的定义,特点和技术平台

    (作者声明:对于Java编程语言,很多人只知道怎么用,却对其了解甚少.我也是其中一员.所以菜鸟的我,去查询了教科书以及大神的总结,主要参考了<Java核心技术>这本神作.现在分享给大家!) ...

  6. [java基础知识]java安装步骤

    jre:  java运行环境.  jre =  java虚拟机 + 核心类库(辅助java虚拟机运行的文件).如果只是运行java程序,只需要安装jre.    jdk: java开发工具集   jd ...

  7. 计算机基础知识和tcp详解

    计算机基础知识 作为应用软件开发程序员是写应用软件的,而应用软件必须应用在操作系统之上,调用操作系统接口,由操作系统控制硬件 比如客户端软件想要基于网络发送一条消息给服务端软件,流程是: 1.客户端软 ...

  8. OpenStack基础知识-tox的详解介绍

    1.tox简介 tox是通用的虚拟环境管理和测试命令行工具.tox能够让我们在同一个Host上自定义出多套相互独立且隔离的python环境,每套虚拟环境中可能使用了不同的 Python 拦截器/环境变 ...

  9. java线程基础知识----SecurityManager类详解

    在查看java Thread源码的时候发现一个类----securityManager,虽然很早就知道存在这样一个类但是都没有深究,今天查看了它的api和源码,发现这个类功能强大,可以做很多权限控制策 ...

  10. Java基础(55):Exception类详解(转)

    Java中的异常 Exception java.lang.Exception类是Java中所有异常的直接或间接父类.即Exception类是所有异常的根类. 比如程序: public class Ex ...

随机推荐

  1. 线程中synchronized关键字和lock接口的异同

    一.synchronized关键字 1.可以用来修饰代码块 synchronized (this) { // 同步的关键字 this 表示当前线程对象 if (num == 0) { break; } ...

  2. 了解HTTP协议,这一篇就够了

    ​HTTP(Hyper Text Transfer Protocol:超文本传输协议)是一个基于请求与响应模式的.无状态的.应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的 ...

  3. Python爬虫之Selenium的常用方法

    1.单个元素的选取 find_element_by_id      通过标签属性Id查找元素 find_element_by_name      通过标签属性name查找元素 find_element ...

  4. EntityFramework Core 3多次Include导致查询性能低之解决方案

    前言 上述我们简单讲解了几个小问题,这节我们再来看看如标题EF Core中多次Include导致出现性能的问题,废话少说,直接开门见山. EntityFramework Core 3多次Include ...

  5. python实现一可升降式的冒泡排序

    前几天看了个冒泡的排序,这里手敲了一下代码,简单记录如下: def bubble_sort(arr, order='asc'): # #可选升降序的冒泡排序, order>0升序,order&l ...

  6. linux搭建ftp出错汇总

    重启vsftpd出现”500 OOPS: vsftpd: cannot open config file:restart” 2008-05-09 21:33 进到/etc/init.d/目录 输入: ...

  7. C语音I博客作业09

    ------------恢复内容开始------------ 这个作业属于那个课程|C语言程序设计II --|:--:|--: 这个作业要求在哪里|https://edu.cnblogs.com/ca ...

  8. 使用 SecureRandom 产生随机数采坑记录

    公众号「码海」欢迎关注 背景 我们的项目工程里经常在每个函数需要用到 Random 的地方定义一下 Random 变量(如下) public void doSomethingCommon() { Ra ...

  9. tp5引用第三方类vendor或extend(多种方法)

    extend 方法一:命名空间引入 我们只需要把自己的类库包目录放入EXTEND_PATH目录(默认为extend,可配置),就可以自动注册对应的命名空间,例如: 我们在extend目录下面新增一个l ...

  10. 借 redis cluster 集群,聊一聊集群中数据分布算法

    Redis Cluster 集群中涉及到了数据分布问题,因为 redis cluster 是多 master 的结构,每个 master 都是可以提供存储服务的,这就会涉及到数据分布的问题,在新的 r ...