Java常用API(String类)
Java常用API(String类)
概述:
java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例
1. 字符串不变:字符串的值在创建后不能被更改
String s1 = "abc";
s1 += "d";
System.out.println(s1);
// "abcd"
// 内存中有"abc","abcd"两个对象,s1从指向"abc",改变指向,指向了"abcd"。
这里我们就通过一个内存图来更好的向大家解释
首先我们来写一段简单的代码,然后画出该代码的内存图来帮助大家理解
1 public class Test {
2 public static void main(String[] args) {
3 String str1="123";
4 String str2="123";
5 String str3=new String("123");
6 System.out.println(str1==str2);//true
7 System.out.println(str1==str3);//false
8 System.out.println(str2==str3);//false
9 }
10 }
首先我给大家引入一个字符串常量池的概念
什么是字符串常量池呢,如上图
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)
1 public class Test {
2 public static void main(String[] args) {
3 String str1="abc";
4 String str2="abc";
5 String str3="ABC";
6 System.out.println(str1.equals(str2));//true
7 System.out.println(str1.equals(str3));//false
8 System.out.println(str1.equalsIgnoreCase(str3));
9
10 }
11 }
获取功能的方法
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到末尾
1 package cn.itcast;
2
3 public class Test {
4 public static void main(String[] args) {
5 String str1="abc";
6 String str2="abc";
7 System.out.println("字符串长度是:"+str1.length());
8 String concat = str1.concat(str2);
9 System.out.println("连接后的字符串:"+concat);
10 System.out.println("第一个字母:"+str1.charAt(0));
11 System.out.println("b第一次出现地方的索引:"+str1.indexOf("b"));
12 String substring = str1.substring(1);
13 System.out.println("截取后的字符串:"+substring);
14 }
15 }
结果
转换功能的方法
public char[] toCharArray() 将字符串转换为数组
public byte[] getbytes() 将字符串转换为新的字节数组
public String replace(CharSequence target,CharSequence replace) 替换字符串中的指定字符
1 public class Test {
2 public static void main(String[] args) {
3 String str1="abc";
4 char[] chars = str1.toCharArray();
5 byte[] bytes = str1.getBytes();
6 System.out.println("转换为数组:");
7 for (int i = 0; i < chars.length; i++) {
8 System.out.print(chars[i]+",");
9 }
10 System.out.println();
11 System.out.println("转换为字节数组:");
12 for (int i = 0; i < bytes.length; i++) {
13 System.out.print(bytes[i]+",");
14 }
15 System.out.println();
16 String replace = str1.replace("a", "A");
17 System.out.println("替换后的字符串:"+replace);
18 }
19 }
结果
分割方法
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教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 【教程】制作高品质铃声,苹果/安卓通用
- 【iOS】应用多开教程
- ggplot2画KEGG富集柱形图
- Go语言函数间传递切片的问题
- Go语言函数间传递数组的问题
- Kubernetes v1.8 对 GPU 的支持
- 【教程】checkra1n越狱教程+常用插件推荐
- 【教程】抓取网页内视频的五种方法
- 了解 Anaconda
- 【实用】教你识别下载“全家桶”
- 【iOS】修改checkra1n+chimera环境(chimera1n)
- 在 istio 中限制 namespace 访问外部资源
- 【iOS】浅析近期越狱工具+“平刷”工具
- XGBoost Operator源码分析
- 【杂货】制作checkra1n启动盘思路