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. 机器学习中的标准化方法(Normalization Methods)

    希望这篇随笔能够从一个实用化的角度对ML中的标准化方法进行一个描述.即便是了解了标准化方法的意义,最终的最终还是要:拿来主义,能够在实践中使用. 动机:标准化的意义是什么? 我们为什么要标准化?想象我 ...

  2. C# 加密、解密PDF文档(基于Spire.Cloud.SDK for .NET)

    Spire.Cloud.SDK for .NET提供了接口PdfSecurityApi可用于加密.解密PDF文档.本文将通过C#代码演示具体加密及解密方法. 使用工具: Spire.Cloud.SDK ...

  3. cb16a_c++_顺序容器的选用_排序_二分查找

    /*cb16a_c++_顺序容器的选用_排序_二分查找顺序容器: 1.vector的优点与缺点 vector优点:排序利用下标,快速排序,做二分查找非常快 2.list的优点与缺点 list优点:插入 ...

  4. Python编程快速上手 让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘

    Python编程快速上手  让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:7qm4 有关本书 累计销售超过10万册 零基础编程者的不二之选 基于Python3编写 通用 ...

  5. Spring Boot 2 实战:利用Redis的Geo功能实现查找附近的位置

    1. 前言 老板突然要上线一个需求,获取当前位置方圆一公里的业务代理点.明天上线!当接到这个需求的时候我差点吐血,这时间也太紧张了.赶紧去查相关的技术选型.经过一番折腾,终于在晚上十点完成了这个需求. ...

  6. 完美解决asp.net core 3.1 两个AuthenticationScheme(cookie,jwt)共存在一个项目中

    内容 在我的项目中有mvc controller(view 和 razor Page)同时也有webapi,那么就需要网站同时支持2种认证方式,web页面的需要传统的cookie认证,webapi则需 ...

  7. Spring中的JDBC API

    1 JdbcTemplate的诞生 JDBC作为Java平台访问关系数据库的标准API,其成功是有目共睹的.为了避免在JDBC API在使用中的种种尴尬局面(几乎程式一样的代码,繁琐的异常处理),Sp ...

  8. 在ASP.NET 中有哪些数据验证控件(请解释ASP.NET中以什么方式进行数据验证)?

    (1)RequiredFieldValidator:检查用户是否输入: (2)CompareValidator:检查两个表单输入项的输入信息是否存在某种指定关系,比如大.等于等: (3)RangeVa ...

  9. easymock笔记2

    EasyMock主要是为测试提供模拟数据,比如你可以模拟HttpServletRequest. EasyMock 可以mock interface和抽象java 类,但是不可以mock拥有被final ...

  10. java scoket aIO 通信

    AsynchronousServerSocketChannel assc.accept(this, new ServerCompletionHandler()); 第一个参数是服务器的处理类,第二个参 ...