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. jenkins构建报错 Error fetching remote repo 'origin'

    ERROR: Error fetching remote repo 'origin' Finished: FAILURE // 原因如下 原因一:可能是配置的git分支的权限问题,检查一下配置里面的源 ...

  2. 什么了解suite集合实现

    Testsuite继承BaseTestSuite其实内部的东西不是太多--生成suite集合的逻辑主要如下-我这里没有扒源码-因为他最终生成的TestsSuite关联的模块比较多--如果贴源码出来-- ...

  3. 网络框架OKHTTP使用场景全解析

    [本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 一.引言 说句实 ...

  4. Halcon斑点分析BlobAnalysis解析

    斑点分析的算法非常简单:在图像中,相关对象的像素(也称为前景)通过其灰度值来识别.例如,图中示例显示了液体中的组织颗粒.这些粒子是明亮的,液体(背景)是暗的.通过选择明亮的像素(阈值),可以很容易检测 ...

  5. centos搭建nginx+fastdfs

    软件地址 libfastcommon fastDFS fastdfs-nginx-module nginx 创建目录 mkdir -p /fastdfs/tracker mkdir -p /fastd ...

  6. JDK8--07:并行流与串行流

    JDK8中,提供了并行流和串行流,使用parallel()和sequential()来处理,parallel()为并行流sequential()为串行流,两者可以相互转换,以最后一个为准 LongSt ...

  7. 深入理解RocketMQ(九)---实战(代码)

    一.批量发送消息 即多条消息放入List,一次发送,从而减少网络传输,提高效率 DefaultMQProducer producer = new DefaultMQProducer("bat ...

  8. Unicode 环境下的字符串的操作

    1.CString转int int i _ttoi( str ); 2.保存中文和读取中文: CSdtioFile在Unicode环境下默认是不支持中文的,若需要存储和读取中文需要设置代码页: #in ...

  9. LeetCode64. 最小路径和

    这题和62题以及63题类似,只不过dp数组的状态表示变了,这里dp数组不再表示方案数,而是到当前格子的最小路径和.可以发现:要到达第i行第j列的格子,只有从第i - 1行第j列的格子或第i行第j - ...

  10. 基于小程序请求接口 wx.request 封装的类 axios 请求

    基于小程序请求接口 wx.request 封装的类 axios 请求 Introduction wx.request 的配置.axios 的调用方式 源码戳我 feature 支持 wx.reques ...