编程语言
首页 > 编程语言> > JavaApi String类

JavaApi String类

作者:互联网

Java常用API(String类)

概述:

java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例

 

1. 字符串不变:字符串的值在创建后不能被更改

 

  1. String s1 = "abc";
  2. s1 += "d";
  3. System.out.println(s1);
  4. // "abcd"
  5. // 内存中有"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"格式命名的时候,会先去字符串常量池中找,如果没有再创建,这样极大的

减小了内存的浪费

  1. 下面我来介绍几个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)将字符串按照指定的分隔符分隔成数组

  1. package cn.itcast;
  2.  
  3. import com.alibaba.druid.sql.visitor.SQLASTOutputVisitorUtils;
  4.  
  5. public class Test {
  6. public static void main(String[] args) {
  7. String str1="aa,bb,cc";
  8. String[] split = str1.split(",");
  9. System.out.println("以逗号分隔:");
  10. for (int i = 0; i < split.length; i++) {
  11. System.out.println(split[i]);
  12. }
  13.  
  14. }
  15. }

结果

以上就是有关字符串的一些基本知识,如果有错误还请各位批评指正

标签:String,str1,System,JavaApi,println,public,out
来源: https://www.cnblogs.com/huangyanda/p/16367219.html