Java常用API(String类)
Java常用API(String类)
概述:
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 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类)的更多相关文章
- Java常用API(Math类)
Java常用API(Math类) Math类的作用 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数.类似这样的工具 类,其所有方法均为静态方法,并且 ...
- Java常用API(Arrays类)
Java常用API(Arrays类) 什么是Arrays类? java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等.其所有方法均为静态方法,调用起来 非常简单. 这里我们 ...
- Java常用API(ArrayList类)
Java常用API(ArrayList类) 我们为什么要使用ArrayList类? 为了更加方便的储存对象,因为使用普通的数组来存储对象太过麻烦了,因为数组的一个很大的弱点就是长度从一开始就固定了,所 ...
- Java常用API(Random类)
Java常用API(Random类) Random:是一个用于生成随机数的类 构造方法 public Random() :创建一个新的随机数生成器. 返回随机数的方法 public int nextI ...
- Java常用API(Scanner类)
Java常用API( Scanner类)1 1.Scanner类 首先给大家介绍一下什么是JavaAPI API(Application Programming Interface),应用程序编程接口 ...
- Java常用API——String字符串运算
一.字符串运算 String类 1.概述 String是特殊的引用数据类型,它是final类. 2.构造方法 String str = "abc"; 相当于: char date ...
- Java 常用对象-String类
2017-11-02 20:02:06 String:代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 字符串是常量:它们的值在创建之后不能 ...
- Java常用API——时间类
前言:Java.util.*工具包中,包含了集合框架,旧集合类,事件模型,日期和时间设施,国际化和其他使用程序类 (字符串.随机数生成器和位数组) 一.日期类Date 1.概述 Date是一个薄包装类 ...
- Java 常用API(二)
目录 Java 常用API(二) 1. Object类 2. Date类 概述 构造方法和成员方法 3. DateFormat类 概述 SimpleDateFormat类 练习 4. Calendar ...
随机推荐
- 机器学习中的标准化方法(Normalization Methods)
希望这篇随笔能够从一个实用化的角度对ML中的标准化方法进行一个描述.即便是了解了标准化方法的意义,最终的最终还是要:拿来主义,能够在实践中使用. 动机:标准化的意义是什么? 我们为什么要标准化?想象我 ...
- C# 加密、解密PDF文档(基于Spire.Cloud.SDK for .NET)
Spire.Cloud.SDK for .NET提供了接口PdfSecurityApi可用于加密.解密PDF文档.本文将通过C#代码演示具体加密及解密方法. 使用工具: Spire.Cloud.SDK ...
- cb16a_c++_顺序容器的选用_排序_二分查找
/*cb16a_c++_顺序容器的选用_排序_二分查找顺序容器: 1.vector的优点与缺点 vector优点:排序利用下标,快速排序,做二分查找非常快 2.list的优点与缺点 list优点:插入 ...
- Python编程快速上手 让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘
Python编程快速上手 让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:7qm4 有关本书 累计销售超过10万册 零基础编程者的不二之选 基于Python3编写 通用 ...
- Spring Boot 2 实战:利用Redis的Geo功能实现查找附近的位置
1. 前言 老板突然要上线一个需求,获取当前位置方圆一公里的业务代理点.明天上线!当接到这个需求的时候我差点吐血,这时间也太紧张了.赶紧去查相关的技术选型.经过一番折腾,终于在晚上十点完成了这个需求. ...
- 完美解决asp.net core 3.1 两个AuthenticationScheme(cookie,jwt)共存在一个项目中
内容 在我的项目中有mvc controller(view 和 razor Page)同时也有webapi,那么就需要网站同时支持2种认证方式,web页面的需要传统的cookie认证,webapi则需 ...
- Spring中的JDBC API
1 JdbcTemplate的诞生 JDBC作为Java平台访问关系数据库的标准API,其成功是有目共睹的.为了避免在JDBC API在使用中的种种尴尬局面(几乎程式一样的代码,繁琐的异常处理),Sp ...
- 在ASP.NET 中有哪些数据验证控件(请解释ASP.NET中以什么方式进行数据验证)?
(1)RequiredFieldValidator:检查用户是否输入: (2)CompareValidator:检查两个表单输入项的输入信息是否存在某种指定关系,比如大.等于等: (3)RangeVa ...
- easymock笔记2
EasyMock主要是为测试提供模拟数据,比如你可以模拟HttpServletRequest. EasyMock 可以mock interface和抽象java 类,但是不可以mock拥有被final ...
- java scoket aIO 通信
AsynchronousServerSocketChannel assc.accept(this, new ServerCompletionHandler()); 第一个参数是服务器的处理类,第二个参 ...