String类(一 )--String类、StringBuffer类、包装类



  1. class StringDemo   
  2. {  
  3.     public static void main(String[] args)   
  4.     {  
  5.         /* 
  6.         String s1 = "abc";//s1是一个类类型变量, "abc"是一个对象。 
  7.                         //字符串最大特点:一旦被初始化就不可以被改变。 
  8.  
  9.         String s2 = new String("abc"); 
  10.  
  11.         //s1和s2有什么区别? 
  12.         //s1在内存中有一个对象。 
  13.         //s2在内存中有两个对象。 
  14.          
  15.         System.out.println(s1==s2); 
  16.         System.out.println(s1.equals(s2));//String类复写了Object类中equals方法, 
  17.                                         //该方法用于判断字符串是否相同。 
  18.         */  
  19.   
  20.         String s = "abcde";  
  21.         method_1(s);  
  22.     }  
  23.   
  24.     /* 
  25.     String类是对字符串事物的描述。 
  26.     该类定义了专门用于操作字符串的方法。 
  27.     "abc": 
  28.     */  
  29.   
  30.     public static void method_1(String s)  
  31.     {  
  32.         char ch = s.charAt(3);  
  33.   
  34.         System.out.println("ch="+ch);  
  35.         int num = s.codePointAt(3);  
  36.   
  37.         System.out.println("num="+num);  
  38.   
  39.         String s1 = "qq";  
  40.         s1 = s1.concat("mm");  
  41.   
  42.         System.out.println("s1="+s1);  
  43.         System.out.println("qq"+"mm");  
  44.   
  45.         String a = "opq";  
  46.         String b = "opq";  
  47.         System.out.println("a==b:"+(a==b));  
  48.   
  49.   
  50.     }  
  51. }  

String类相关方法:

[java]  view plain copy
  1. /* 
  2.  
  3. String类适用于描述字符串事物。 
  4. 那么它就提供了多个方法对字符串进行操作。 
  5.  
  6. 常见的操作有哪些? 
  7. "abcd" 
  8.  
  9. 1,获取。 
  10.     1.1 字符串中的包含的字符数,也就是字符串的长度。 
  11.         int length():获取长度。 
  12.     1.2 根据位置获取位置上某个字符。 
  13.         char charAt(int index): 
  14.     1.3 根据字符获取该字符在字符串中位置。 
  15.         int indexOf(int ch):返回的是ch在字符串中第一次出现的位置。 
  16.         int indexOf(int ch, int fromIndex) :从fromIndex指定位置开始,获取ch在字符串中出现的位置。 
  17.  
  18.         int indexOf(String str):返回的是str在字符串中第一次出现的位置。 
  19.         int indexOf(String str, int fromIndex) :从fromIndex指定位置开始,获取str在字符串中出现的位置。 
  20.  
  21.         int lastIndexOf(int ch) : 
  22.  
  23.          
  24. 2,判断。 
  25.     2.1 字符串中是否包含某一个子串。 
  26.         boolean contains(str): 
  27.         特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1.表示该str不在字符串中存在。 
  28.                 所以,也可以用于对指定判断是否包含。 
  29.                 if(str.indexOf("aa")!=-1) 
  30.  
  31.                 而且该方法即可以判断,有可以获取出现的位置。 
  32.  
  33.     2.2 字符中是否有内容。 
  34.         boolean isEmpty(): 原理就是判断长度是否为0.  
  35.     2.3 字符串是否是以指定内容开头。 
  36.         boolean startsWith(str); 
  37.     2.4 字符串是否是以指定内容结尾。 
  38.         boolean endsWith(str); 
  39.     2.5 判断字符串内容是否相同。复写了Object类中的equals方法。 
  40.         boolean equals(str); 
  41.     2.6 判断内容是否相同,并忽略大小写。 
  42.         boolean equalsIgnoreCase(); 
  43.      
  44. 3,转换。 
  45.     3.1 将字符数组转成字符串。 
  46.         构造函数:String(char[]) 
  47.                   String(char[],offset,count):将字符数组中的一部分转成字符串。 
  48.  
  49.         静态方法: 
  50.                 static String copyValueOf(char[]); 
  51.                 static String copyValueOf(char[] data, int offset, int count)  
  52.  
  53.                 static String valueOf(char[]): 
  54.  
  55.          
  56.     3.2 将字符串转成字符数组。** 
  57.         char[] toCharArray(): 
  58.  
  59.     3.3 将字节数组转成字符串。 
  60.             String(byte[]) 
  61.             String(byte[],offset,count):将字节数组中的一部分转成字符串。 
  62.  
  63.     3.4 将字符串转成字节数组。 
  64.             byte[]  getBytes(): 
  65.     3.5 将基本数据类型转成字符串。 
  66.         static String valueOf(int) 
  67.         static String valueOf(double) 
  68.  
  69.         //3+"";//String.valueOf(3); 
  70.  
  71.         特殊:字符串和字节数组在转换过程中,是可以指定编码表的。 
  72.  
  73. 4,替换 
  74.     String replace(oldchar,newchar); 
  75.  
  76. 5,切割 
  77.     String[] split(regex); 
  78.  
  79. 6,子串。获取字符串中的一部分。 
  80.     String substring(begin); 
  81.     String substring(begin,end); 
  82.  
  83. 7,转换,去除空格,比较。 
  84.     7.1 将字符串转成大写或则小写。 
  85.          String toUpperCase(); 
  86.          String toLowerCase(); 
  87.  
  88.     7.2 将字符串两端的多个空格去除。 
  89.         String trim(); 
  90.  
  91.     7.3 对两个字符串进行自然顺序的比较。 
  92.         int compareTo(string); 
  93.  
  94. */  
  95.   
  96. class  StringMethodDemo  
  97. {  
  98.   
  99.     public static void method_7()  
  100.     {  
  101.         String s = "    Hello Java     ";  
  102.         sop(s.toLowerCase());  
  103.         sop(s.toUpperCase());  
  104.         sop(s.trim());  
  105.   
  106.         String s1 = "a1c";  
  107.         String s2 = "aaa";  
  108.   
  109.         sop(s1.compareTo(s2));  
  110.     }  
  111.     public static void method_sub()  
  112.     {  
  113.         String s = "abcdef";  
  114.   
  115.         sop(s.substring(2));//从指定位置开始到结尾。如果角标不存在,会出现字符串角标越界异常。  
  116.         sop(s.substring(2,4));//包含头,不包含尾。s.substring(0,s.length());  
  117.     }  
  118.   
  119.     public static void  method_split()  
  120.     {  
  121.         String s = "zhagnsa,lisi,wangwu";  
  122.   
  123.         String[] arr  = s.split(",");  
  124.   
  125.         for(int x = 0; x<arr.length; x++)  
  126.         {  
  127.             sop(arr[x]);  
  128.         }  
  129.     }  
  130.   
  131.     public static void method_replace()  
  132.     {  
  133.         String s = "hello java";  
  134.   
  135.         //String s1 = s.replace('q','n');//如果要替换的字符不存在,返回的还是原串。  
  136.   
  137.   
  138.         String s1 = s.replace("java","world");  
  139.         sop("s="+s);  
  140.         sop("s1="+s1);  
  141.     }  
  142.   
  143.     public static void method_trans()  
  144.     {  
  145.         char[] arr = {'a','b','c','d','e','f'};  
  146.   
  147.         String s= new String(arr,1,3);  
  148.   
  149.         sop("s="+s);  
  150.   
  151.         String s1 = "zxcvbnm";  
  152.   
  153.         char[] chs = s1.toCharArray();  
  154.   
  155.         for(int x=0; x<chs.length; x++)  
  156.         {  
  157.             sop("ch="+chs[x]);  
  158.         }  
  159.     }  
  160.     public static void method_is()  
  161.     {  
  162.         String str = "ArrayDemo.java";  
  163.           
  164.         //判断文件名称是否是Array单词开头。  
  165.         sop(str.startsWith("Array"));  
  166.         //判断文件名称是否是.java的文件。  
  167.         sop(str.endsWith(".java"));  
  168.         //判断文件中是否包含Demo  
  169.         sop(str.contains(".java"));  
  170.   
  171.   
  172.     }  
  173.   
  174.   
  175.     public static void method_get()  
  176.     {  
  177.         String str = "abcdeakpf";  
  178.   
  179.         //长度  
  180.         sop(str.length());  
  181.   
  182.         //根据索引获取字符。  
  183.         sop(str.charAt(4));//当访问到字符串中不存在的角标时会发生StringIndexOutOfBoundsException。  
  184.   
  185.   
  186.         //根据字符获取索引  
  187.         sop(str.indexOf('m',3));//如果没有找到,返回-1.  
  188.           
  189.         //反向索引一个字符出现位置。  
  190.         sop(str.lastIndexOf("a"));  
  191.           
  192.     }  
  193.     public static void main(String[] args)   
  194.     {  
  195.         method_7();  
  196. //      method_trans();  
  197. //      method_is();  
  198. //      method_get();  
  199.         /* 
  200.         String s1 = "abc"; 
  201.         String s2 = new String("abc"); 
  202.  
  203.         String s3 = "abc"; 
  204.         System.out.println(s1==s2); 
  205.         System.out.println(s1==s3); 
  206.  
  207.         */  
  208.     }  
  209.   
  210.     public static void sop(Object obj)  
  211.     {  
  212.         System.out.println(obj);  
  213.     }  
  214.   
  215.   
  216. }  

StringBuffer类:

[java]  view plain copy
  1. /* 
  2. StringBuffer是字符串缓冲区。 
  3.  
  4. 是一个容器。 
  5. 特点: 
  6. 1,长度是可变化的。 
  7. 2,可以字节操作多个数据类型。 
  8. 3,最终会通过toString方法变成字符串。 
  9.  
  10.  
  11.  
  12. C create U update R read D delete 
  13.  
  14. 1,存储。 
  15.     StringBuffer append():将指定数据作为参数添加到已有数据结尾处。 
  16.     StringBuffer insert(index,数据):可以将数据插入到指定index位置。 
  17.  
  18.  
  19. 2,删除。 
  20.     StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。 
  21.     StringBuffer deleteCharAt(index):删除指定位置的字符。 
  22.      
  23. 3,获取。 
  24.     char charAt(int index)  
  25.     int indexOf(String str)  
  26.     int lastIndexOf(String str)  
  27.     int length()  
  28.     String substring(int start, int end)  
  29.   
  30. 4,修改。 
  31.     StringBuffer replace(start,end,string); 
  32.     void setCharAt(int index, char ch) ; 
  33.  
  34.  
  35. 5,反转。 
  36.     StringBuffer reverse(); 
  37.   
  38. 6, 
  39.     将缓冲区中指定数据存储到指定字符数组中。 
  40.     void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)  
  41.  
  42.      
  43. JDK1.5 版本之后出现了StringBuilder. 
  44.  
  45. StringBuffer是线程同步。 
  46. StringBuilder是线程不同步。 
  47.  
  48. 以后开发,建议使用StringBuilder 
  49.  
  50. 升级三个因素: 
  51. 1,提高效率。 
  52. 2,简化书写。 
  53. 3,提高安全性。 
  54.  
  55. */  
  56. class Demo  
  57. {  
  58. }  
  59.   
  60. class StringBufferDemo   
  61. {  
  62.     public static void main(String[] args)   
  63.     {  
  64.         //method_update();  
  65.   
  66.         StringBuilder sb = new StringBuilder("abcdef");  
  67.       
  68.         char[] chs = new char[6];  
  69.   
  70.   
  71.         sb.getChars(1,4,chs,1);//将  
  72.   
  73.         for(int x=0; x<chs.length; x++)  
  74.         {  
  75.             sop("chs["+x+"]="+chs[x]+";");  
  76.         }  
  77.   
  78.         draw(3,6);  
  79.         draw(8,9);  
  80.   
  81. //      StringBuilder sb1 = new StringBuilder();  
  82. //      sb1.append(new Demo()).append(new Demo());  
  83. //      sop("sb1="+sb1);  
  84.     }  
  85.     public static void method_update()  
  86.     {  
  87.         StringBuffer sb  = new StringBuffer("abcde");  
  88.   
  89. //      sb.replace(1,4,"java");  
  90.         sb.setCharAt(2,'k');  
  91.   
  92.   
  93.         sop(sb.toString());  
  94.       
  95.     }  
  96.     public static void method_del()  
  97.     {  
  98.         StringBuffer sb  = new StringBuffer("abcde");  
  99.           
  100. //      sb.delete(1,3);  
  101.         //清空缓冲区。  
  102.         //sb.delete(0,sb.length());  
  103.   
  104.         //sb.delete(2,3);  
  105.         sb.deleteCharAt(2);  
  106.   
  107.         sop(sb.toString());  
  108.     }  
  109.   
  110.     public static void method_add()  
  111.     {  
  112.         StringBuffer sb = new StringBuffer();  
  113.   
  114.   
  115.         //sb.append("abc").append(true).append(34);  
  116. //      StringBuffer sb1 = sb.append(34);  
  117. //      sop("sb==sb1:"+(sb==sb1));  
  118.   
  119.         sb.insert(1,"qq");  
  120.         sop(sb.toString());//abctrue34  
  121.         //sop(sb1.toString());  
  122.   
  123.           
  124.     }  
  125.   
  126.       
  127.     public static void sop(String str)  
  128.     {  
  129.         System.out.println(str);  
  130.     }  
  131.       
  132.     public static void draw(int row,int col)  
  133.     {  
  134.         StringBuilder sb = new StringBuilder();  
  135.         for(int x=0; x<row; x++)  
  136.         {  
  137.             for(int y=0; y<col; y++)  
  138.             {  
  139.                 sb.append("*");  
  140.             }  
  141.             sb.append("\r\n");  
  142.         }  
  143.   
  144.         sop(sb.toString());  
  145.     }  
  146.   
  147. }  

基本数据类型包装类:

[java]  view plain copy
  1. /* 
  2. 基本数据类型对象包装类。 
  3.  
  4. byte    Byte 
  5. short   short 
  6. int     Integer 
  7. long    Long 
  8. boolean Boolean 
  9. float   Float 
  10. double  Double 
  11. char    Character 
  12.  
  13.  
  14.  
  15. 基本数据类型对象包装类的最常见作用, 
  16. 就是用于基本数据类型和字符串类型之间做转换 
  17.  
  18. 基本数据类型转成字符串。 
  19.  
  20.     基本数据类型+"" 
  21.  
  22.     基本数据类型.toString(基本数据类型值); 
  23.  
  24.     如: Integer.toString(34);//将34整数变成"34"; 
  25.  
  26.  
  27. 字符串转成基本数据类型。 
  28.  
  29.     xxx a = Xxx.parseXxx(String); 
  30.  
  31.     int a = Integer.parseInt("123"); 
  32.  
  33.     double b = Double.parseDouble("12.23"); 
  34.  
  35.     boolean b = Boolean.parseBoolean("true"); 
  36.  
  37.     Integer i = new Integer("123"); 
  38.  
  39.     int num = i.intValue(); 
  40.  
  41.      
  42.  
  43.  
  44. 十进制转成其他进制。 
  45.     toBinaryString(); 
  46.     toHexString(); 
  47.     toOctalString(); 
  48.  
  49.  
  50. 其他进制转成十进制。 
  51.     parseInt(string,radix); 
  52.  
  53.  
  54. */  
  55. class IntegerDemo   
  56. {  
  57.     public static void sop(String str)  
  58.     {  
  59.         System.out.println(str);  
  60.     }  
  61.       
  62.     public static void main(String[] args)   
  63.     {  
  64.         //整数类型的最大值。  
  65.         //sop("int max :"+Integer.MAX_VALUE);  
  66.   
  67. //      将一个字符串转成整数。  
  68.   
  69.         int num = Integer.parseInt("123");//必须传入数字格式的字符串。  
  70.         //long x = Long.parseLong("123");  
  71.   
  72. //      sop("num="+(num+4));  
  73.   
  74. //      sop(Integer.toBinaryString(-6));  
  75. //      sop(Integer.toHexString(60));  
  76.   
  77.         int x = Integer.parseInt("3c",16);  
  78.   
  79.         sop("x="+x);  
  80.   
  81.   
  82.     }  
  83. }  

[java]  view plain copy
  1. /* 
  2. JDK1.5版本以后出现的新特性。 
  3.  
  4. */  
  5.   
  6. class IntegerDemo1   
  7. {  
  8.     public static void main(String[] args)   
  9.     {  
  10.           
  11. //      Integer x = new Integer(4);  
  12.   
  13.         Integer x = 4;//自动装箱。//new Integer(4)  
  14.   
  15.         x = x/* x.intValue() */ + 2;//x+2:x 进行自动拆箱。变成成了int类型。和2进行加法运算。  
  16.                     //再将和进行装箱赋给x。  
  17.   
  18.           
  19.   
  20.         Integer m = 128;  
  21.         Integer n = 128;  
  22.   
  23.         sop("m==n:"+(m==n));  
  24.   
  25.         Integer a = 127;  
  26.         Integer b = 127;  
  27.   
  28.         sop("a==b:"+(a==b));//结果为true。因为a和b指向了同一个Integer对象。  
  29.                         //因为当数值在byte范围内容,对于新特性,如果该数值已经存在,则不会在开辟新的空间。  
  30.     }  
  31.   
  32.     public static void method()  
  33.     {  
  34.         Integer x = new Integer("123");  
  35.   
  36.         Integer y = new Integer(123);  
  37.   
  38.         sop("x==y:"+(x==y));  
  39.         sop("x.equals(y):"+x.equals(y));  
  40.     }  
  41.   
  42.     public static void sop(String str)  
  43.     {  
  44.         System.out.println(str);  
  45.     }  
  46.       
  47. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值