String类

java.lang.Object的子类

java.lang.String

1.String类的创建

  

    String s = new String("abc");

    String s = "abc";    

2.String类的常用的构造方法

1>public String(char[] value)

  eg: char[] ch ={'a','b','c','d','e','f','g' };

2>public String(char[] value,int offset,int count)

offset参数是子数组第一个字符的索引,count参数指定子数组的长度;

  eg:原数组:char[] ch ={'a','b','c','d','e','f','g' };

  char str = new  String(ch,2,3);

  子数组:str = {'c','d','e' };

3>public String(byte[] byst)

使用默认的解码,将字节数组解码成String

  eg:byte[] arr = {97,98,99,100,101};//对应abcde

如果将97-101换成非Ascii码,可能就会报错,byte只能使用

  eg2:

using   System.Text;     
      
  byte[]   b=Encoding.ASCII.GetBytes("yourstring");     
 //  得到:121,111,117,114,115,116,114,105,110,103    
  
   
  
  /反向为:     
  byte[]   b=new   byte[]{121,111,117,114,115,116,114,105,110,103};     
  string   str=Encoding.ASCII.GetString(b);     
  //得到:str="yourstring"
4>public String(byte[] bys,int offset,int count)

使用字节数组的一部分构建字符串;

5>public String(String original)

//用一个原始字符串构建一个新字符串(即原字符串的副本)

3.String类的部分方法

1> public int length()

返回此字符串的长度(字符个数)

  eg:String s = "nanjing.guiyang";

  s.length();//15

2> public char charAt(int index)

返回指定索引处的 char 值。索引范围为从 0 到 length() - 1。序列的第一个 char 值位于索引 0 处,第二个位于索引 1 处,依此类推,这类似于数组索引。

   eg:String s = "nanjing.guiyang";

    s.charAt(1);//a

eg2: 用charAt()遍历字符串

        1.String s = "nanjing.guiyang";  
  2.for (int i=0;i<s.length();i++){
  3.System.out.print(s.charAt(i)+" ");

3> public char[] toCharArray()

  eg:用toCharArray遍历整个数组

  1.String s = "nanjing.guiyang";

  char[] str=s.toCharArray();
  for(int i=0;i<str.length;i++){
    System.out.print(str[i]+" ");
  }

4>public int indexOf(String str)

指定字符串在此字符中第一次出现的索引

  1.String s = "nanjing.guiyang";

  2.String leo9257 ="ang";

  3.System.out.println(s.indexOf("ang"));//12

  4.System.out.println(s.indexOf("leo9257"));//12

5>public boolean startsWith(String str);

测试此字符串是否以指定的字符串开始

  1.String s = "nanjing.guiyang";

  2.System.out.println(s.startsWith("nan"));//true

  3.System.out.println(s.startsWith("gui"));//false

6>public boolean endsWith(String str);

    1.String s = "nanjing.guiyang";

  2.System.out.println(s.startsWith("yang"));//true

7>public String[] split(String rex);

   1.String s = "nanjing.guiyang";

  2.String[] s1=s.split(" \.");//正则表达式中去除.需要两行右斜线
  3.for(int i=0;i<s1.length;i++){
  4.  System.out.print(s1[i]+"  ");//nanjing guiyang
  5.}

8>public String substring(int beginIndex);

//public String substring(int beginIndex,int endIndex);

  1.String s = "nanjing.guiyang";

  2.String s2 = s.substring(3);

  3.String s3 = s.substring(3, 8);
  4.System.out.println(s2+"
"+s3);//jing.guiyang

                        jing.

4.==和equals区别

==对于引用数据类型,比较的是地址值

equals方法:先比较地址值;若地址值不同,再比较字符序列.

  

原文地址:https://www.cnblogs.com/leo9257/p/8877445.html