Java常用API(String类)

概述:

java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例

1. 字符串不变:字符串的值在创建后不能被更改

String s1 = "abc";
s1 += "d";
System.out.println(s1);
// "abcd"
// 内存中有"abc","abcd"两个对象,s1从指向"abc",改变指向,指向了"abcd"。

这里我们就通过一个内存图来更好的向大家解释

首先我们来写一段简单的代码,然后画出该代码的内存图来帮助大家理解

 public class Test {
public static void main(String[] args) {
String str1="123";
String str2="123";
String str3=new String("123");
System.out.println(str1==str2);//true
System.out.println(str1==str3);//false
System.out.println(str2==str3);//false
}
}

首先我给大家引入一个字符串常量池的概念

什么是字符串常量池呢,如上图

String str1=="123"

String str2=="123"

这样子命名的字符串的值就会被存入字符串常量池,而String str3=new String("123")这样new 出来的则不会

顾str1==str3的值为false,而str1==str2的结果则为true,下面通过一张图带大家更加深刻的去理解

当使用String str1="XXXXX"格式命名的时候,会先去字符串常量池中找,如果没有再创建,这样极大的

减小了内存的浪费

下面我来介绍几个String类的常用方法

1判断字符串内容是否相等的方法

public boolead equals(Object anObject)

2忽略大小写判断字符串内容是否相同的方法

public boolean equalsIgnoreCase (String anotherString)
 public class Test {
public static void main(String[] args) {
String str1="abc";
String str2="abc";
String str3="ABC";
System.out.println(str1.equals(str2));//true
System.out.println(str1.equals(str3));//false
System.out.println(str1.equalsIgnoreCase(str3)); }
}

获取功能的方法

public int length() 返回字符串长度

public String concat (String string)  将指定字符串连接到该字符串末尾

public char charat(int index)  返回指定索引处的char值

public int indexOf(String str) 返回指定字符串第一次出现的地方

public String substring (int beginIndex)  剪取字符串,字符串的范围为从begin到末尾

 package cn.itcast;

 public class Test {
public static void main(String[] args) {
String str1="abc";
String str2="abc";
System.out.println("字符串长度是:"+str1.length());
String concat = str1.concat(str2);
System.out.println("连接后的字符串:"+concat);
System.out.println("第一个字母:"+str1.charAt(0));
System.out.println("b第一次出现地方的索引:"+str1.indexOf("b"));
String substring = str1.substring(1);
System.out.println("截取后的字符串:"+substring);
}
}

结果

转换功能的方法

public char[] toCharArray() 将字符串转换为数组

public byte[] getbytes()  将字符串转换为新的字节数组

public String replace(CharSequence target,CharSequence replace) 替换字符串中的指定字符

 public class Test {
public static void main(String[] args) {
String str1="abc";
char[] chars = str1.toCharArray();
byte[] bytes = str1.getBytes();
System.out.println("转换为数组:");
for (int i = 0; i < chars.length; i++) {
System.out.print(chars[i]+",");
}
System.out.println();
System.out.println("转换为字节数组:");
for (int i = 0; i < bytes.length; i++) {
System.out.print(bytes[i]+",");
}
System.out.println();
String replace = str1.replace("a", "A");
System.out.println("替换后的字符串:"+replace);
}
}

结果

分割方法

public String[] split(String regex)将字符串按照指定的分隔符分隔成数组

package cn.itcast;

import com.alibaba.druid.sql.visitor.SQLASTOutputVisitorUtils;

public class Test {
public static void main(String[] args) {
String str1="aa,bb,cc";
String[] split = str1.split(",");
System.out.println("以逗号分隔:");
for (int i = 0; i < split.length; i++) {
System.out.println(split[i]);
} }
}

结果

以上就是有关字符串的一些基本知识,如果有错误还请各位批评指正

Java常用API(String类)的更多相关文章

  1. Java常用API(Math类)

    Java常用API(Math类) Math类的作用 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数.类似这样的工具 类,其所有方法均为静态方法,并且 ...

  2. Java常用API(Arrays类)

    Java常用API(Arrays类) 什么是Arrays类? java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等.其所有方法均为静态方法,调用起来 非常简单. 这里我们 ...

  3. Java常用API(ArrayList类)

    Java常用API(ArrayList类) 我们为什么要使用ArrayList类? 为了更加方便的储存对象,因为使用普通的数组来存储对象太过麻烦了,因为数组的一个很大的弱点就是长度从一开始就固定了,所 ...

  4. Java常用API(Random类)

    Java常用API(Random类) Random:是一个用于生成随机数的类 构造方法 public Random() :创建一个新的随机数生成器. 返回随机数的方法 public int nextI ...

  5. Java常用API(Scanner类)

    Java常用API( Scanner类)1 1.Scanner类 首先给大家介绍一下什么是JavaAPI API(Application Programming Interface),应用程序编程接口 ...

  6. Java常用API——String字符串运算

    一.字符串运算 String类 1.概述 String是特殊的引用数据类型,它是final类. 2.构造方法 String str = "abc"; 相当于:  char date ...

  7. Java 常用对象-String类

    2017-11-02 20:02:06 String:代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 字符串是常量:它们的值在创建之后不能 ...

  8. Java常用API——时间类

    前言:Java.util.*工具包中,包含了集合框架,旧集合类,事件模型,日期和时间设施,国际化和其他使用程序类 (字符串.随机数生成器和位数组) 一.日期类Date 1.概述 Date是一个薄包装类 ...

  9. Java 常用API(二)

    目录 Java 常用API(二) 1. Object类 2. Date类 概述 构造方法和成员方法 3. DateFormat类 概述 SimpleDateFormat类 练习 4. Calendar ...

随机推荐

  1. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(九)

    系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...

  2. s7-200高速脉冲输出与高速计数器讲解

    s7-200高速脉冲输出与高速计数器讲解

  3. 点击提交按钮,屏幕会出现闪烁问题,element.style问题

    点击提交按钮,屏幕会出现闪烁问题 通过后台调试发现,在点击的按钮的时候会给body添加一个padding值,而且会出现怎么都修改不了的问题,会发现里面会有 element.style的值,这其实是一种 ...

  4. Beta冲刺<8/10>

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta冲刺 这个作业的目标 Beta冲刺--第八天(05.26) 作业正文 如下 其他参考文献 ... B ...

  5. [ C++ ] set_new_handler解析

    当 operator new 中malloc返回值为0(NULL)时,表示分配内存失败(可能是因为内存不足), 此时会通过_callnewh()调用用户通过set_new_handler()设定的ne ...

  6. 韩顺刚-tcp报文头协议详细分析第一包数据:序号是0,发送数据的长度是0,因为没有收到对端的数据,所以确认号是0, Syn的标志位设置成1,这里没有发送的数据,只发送TCP的20个字节的头部

    TCP报文段首部格式 大部分TCP报文头部都是20个字节,有的数据包要加上选项. 上面一行代表4个字节,源端口和目的端口都是2个字节. TCP协议是面向字节流的协议 TCP是一段一段分块的发送数据的 ...

  7. django 报错处理汇总

    运行 manage.py task时 ,makemigrations抛出以下错误, django.db.utils.OperationalError: (1045, "Access deni ...

  8. ECSHOP 2.5.1 二次开发文档【文件结构说明和数据库表分析】

    ecshop文件架构说明 /* ECShop 2.5.1 的结构图及各文件相应功能介绍 ECShop2.5.1_Beta upload 的目录 ┣ activity.php 活动列表 ┣ affich ...

  9. python加载json文件

    主要是加载进来,之后就没难度了 import json path = 'predict2.json' file = open(path, "rb") fileJson = json ...

  10. ORACLE误删除表数据或误更新/插入数据如何恢复

    工作中一不小心将本不该删除/更新/插入的数据进行删除/更新/插入了,这时候一定要尽快进行恢复. 工具/原料   PL/SQL 方法/步骤     首先新建一张测试表TEST,里面输入记录.由于删除/更 ...