Java上路11-字符串

来源:互联网 发布:我的淘宝界面音乐 编辑:程序博客网 时间:2024/06/05 06:31


一. String:

字符串是final类。创建字符串对象后,将不能更改构成字符串的字符。

class Test{       String s1="ABC";  //在内存新建一个字符串对象       String s2="ABC";  //内容相同,指向上一个对象       String s3=new String("ABC");    //新建       char[] chars={'A','B','C'};       String s4=new String(chars);     //新建        public void compare ()       {              System.out.println("s1==s2" + (s1==s2));              System.out.println("s1==s3" + (s1==s3));              System.out.println("s1==s4" + (s1==s4));              System.out.println("s3==s4" + (s3==s4));              System.out.println("s1.eauals(s2)" + s1.equals(s2));              System.out.println("s1.eauals(s3)" + s1.equals(s3));              System.out.println("s1.eauals(s4)" + s1.equals(s4));              System.out.println("s3.eauals(s4)" + s3.equals(s4));       }} class StringTest{       public static void main(String[] args)       {              new Test().compare();       }}   


 

1. 字符串比较:

方法

说明

==

  比较引用地址,判断是否为同一个目标。返回真假

equals ( )

  比较值,判断内容是否相同。返回真假

  equalsIgnoreCase ( )  

  忽略大小写进行比较值。返回真假

compareTo ( )

  按字母顺序比较两个字符串的值。相等返回0,比较字符串在参数字符串之前返回值小于0,否则返回值大于0    

startsWith ( )

  是否以参数字符串开始。返回真假

endsWith ( )

  是否以参数字符串结束。返回真假

class StringTest{       public static void main(String[] args)       {              String s1="ABC";              String s2="abc";              String s3="ABcDe";              String s4="ABcde";              //equalsIgnoreCase()忽略大小写比较              //compareTo()按字母顺序比较。基于字符串中各个字符的Unicode值              //startsWith()判断是否以参数为开始              //endsWith()是否以参数为结束              System.out.println("s1.equalsIgnoreCase(s2)" + s1.equalsIgnoreCase(s2));              System.out.println("s3.compareTo(s4)" + s3.compareTo(s4));              System.out.println("s3.startsWith(\"AB\")" + s3.startsWith("AB"));              System.out.println("s4.endsWith(\"dr\")" + s4.endsWith("dr"));       }}   


 2 搜索字符串:

方法

说明

  indexOf(int ch)

  返回第一次出现的字符ch的索引

  indexOf(String str)

  返回第一次出现的字符串str的索引    

  lastIndexOf(int ch)

  返回最后出现的字符ch的索引

  lastIndexOf(String str)    

  返回最后出现的字符串str的索引

class StringTest{       public static void main(String[] args)       {              String str="ABCabcABCabcJKLabcP";               System.out.println("str.indexOf('c')" + str.indexOf('c'));              System.out.println("str.indexOf(\"BC\")" + str.indexOf("BC"));              System.out.println("str.lastIndexOf('c')" + str.lastIndexOf('c'));              System.out.println("str.lastIndexOf(\"BC\")" + str.lastIndexOf("BC"));       }}   



3 提取字符串:

方法

说明

    charAt(int index)

  从指定非负索引提取字符。返回字符

  substring(int index)

  从指定索引提取字符串至结尾。返回字符串

  substring(int begin, int end)    

  返回从指定的开始和结束索引提取的字符串    

  concat(String str)

  将参数字符串连接。返回新的字符串

  replace(char old, char new)

  使用新的字符替换字符串中所有的旧字符

  trim()

  将字符串头尾的空格取出后返回副本

class StringTest{       public static void main(String[] args)       {              String str="  ABCabcABCabcJKLabcP  ";       //前后各有2个空格               System.out.println("字符串:"+str+"\n长度:str.length() ="+str.length());   //长度              System.out.println("索引为5的字符:str.charAt(5)= " + str.charAt(5));              System.out.println("索引为5开始的字符串:str.substring(5)= " + str.substring(5));              System.out.println("索引为5开始至结尾的字符串长度:"+str.substring(5).length());              System.out.println("索引为5-11上的字符串:str.substring(5,12) = " + str.substring(5, 12));              System.out.println("在字符串结尾添加Hello:str.concat(\"Hello\") = " + str.concat(" Hello"));              System.out.println("将字符串中的A替换为Y:str.replace('A','Y') = " + str.replace('A', 'Y'));              System.out.println("去除字符串首尾的空格:str.trim() =" + str.trim());       }}    



4. 字符串转换:

方法

说明

  toUpperCase()

  将所有字符转为大写

  toLowerCase()

  将所有字符转为小写

  copyValueOf(char[] chars)    

  将字符数组转为字符串

  toCharArray()

  将字符串转为字符数组    

  valueOf()

  转数字为字符串

class StringTest{       public static void main(String[] args)       {              String str1="ABCabcABCabcJKLabc";              System.out.println("\n转大写:"+str1.toUpperCase());              System.out.println("转小写:"+str1.toLowerCase());               char chars[]={'a', 'b', 'c', 'd', 'e', 'f'};              System.out.println("\n构造方法从字符数组中索引1开始提取4个字符新建字符串:"+new String(chars, 1, 4));              System.out.println("静态方法转字符数组为字符串:"+String.copyValueOf(chars));              System.out.println("静态方法从字符数组中索引1开始提取4个字符转为字符串:"+String.copyValueOf(chars, 1, 4));               System.out.println("\n字符串转为数组:"+str1.toCharArray());               System.out.println("\n转数字为字符串:"+String.valueOf(123));              System.out.println("转数字为字符串:"+String.valueOf(123.456));                    }}  


5. 字符串分割:

方法

说明

  split(String str)  

  以str为标记分割字符串为数组  

class StringTest{       public static void main(String[] args)       {              String str1="ABCabcABCabcJKLabcD";              String[] str2=str1.split("c");              for(int i=0; i<str2.length; i++)              {                     System.out.println(str2[i]);              }       }}  



二. StringBuffer:

       可修改的字符串类,动态的字符数组。

新建

构造方法

说明

  StringBuffer ( )

  默认保留16个字符的空间

  StringBuffer ( int length )

  同时设置缓存器大小

  StringBuffer ( String value )

  接收参数

 

方法

说明

  insert ( int index, String str )

  在指定索引插入字符串

  append (String str )

  在末尾添加字符串

  delete ( int start , int end )

  删除指定区间的字符,end位保留    

  deleteCharAt ( int index )

  指定位置删除字符

  replace (int start, int end, String str)    

  修改指定区间字符为str

  setCharAt (int index, char ch )

  修改指定位置字符

  reverse ( )

  反转整条字符串

  charAt ( int index )

  指定位置获取字符

  indexOf ( String str )

  查询str首次出现的位置

  lastIndexOf ( String str )

  str最后出现位置

  substring ( int start, int end )

  截取区间为新的字符串

  length ( )

  字符串长度

class StrBufTest{       public static void main(String[] args)       {              StringBuffer sb1=new StringBuffer("StringBuffer1");              StringBuffer sb2=new StringBuffer("StringBuffer2");              System.out.println("sb1="+sb1+"\nsb2="+sb2);               sb1.insert(6," Hello ");              sb1.append("world");              System.out.println("sb1="+sb1);               sb2.delete(6,8);              sb2.deleteCharAt(0);              System.out.println("sb2="+sb2);               sb1.replace(0,6, "It's a");              sb1.setCharAt(14,'b');              System.out.println("sb1="+sb1);       }}   

       JDK1.5中提供了一个新的动态字符串类StringBuilder,与 StringBuffer 兼容,但不保证同步。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。

 


原创粉丝点击