本文主要是介绍JavaApi 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"。
这里我们就通过一个内存图来更好的向大家解释
首先我们来写一段简单的代码,然后画出该代码的内存图来帮助大家理解
- 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]);
- }
-
- }
- }
结果
以上就是有关字符串的一些基本知识,如果有错误还请各位批评指正
这篇关于JavaApi String类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!