标签:就是 没有 介绍 字符串转换 ++ int load pack other
Java常用API(String类)
概述:
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忽略大小写判断字符串内容是否相同的方法
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]); } } }
结果
以上就是有关字符串的一些基本知识,如果有错误还请各位批评指正
标签:就是 没有 介绍 字符串转换 ++ int load pack other
原文地址:https://www.cnblogs.com/pjhaymy/p/13255038.html