Java基础日记———String

原创 2015年07月07日 13:12:05
一.概述
    Java中万物皆对象。
    字符串是一个特殊的对象。
    字符串一旦初始化就不可以被改变。
    例如A是一个类。A X则是创建一个引用变量,X=NEW A()则是在内存中建立一个对象(开辟了1片空间),对象的模板就是A(可以理解为在空间里复制了A类里的变量到空间里去)此时就可以使用引用变量X去引用对象中的变量了
    String s1 = "abc"; 
    String s2 = new String("abc"):
    s1在内存中只有一个对象,s2在内存中存在两个对象。
    内存中存在一个常量池,s1字符会找常量池。
二.方法介绍
1.String方法:
(1).获取。
    1.1 字符串中的包含的字符数,也就是字符串的长度。
          int length():获取长度。
    1.2 根据位置获取位置上某个字符。
          char charAt(int index):
    1.3 根据字符获取该字符在字符串中位置。
          int indexOf(int ch):返回的是ch在字符串中第一次出现的位置。
          int indexOf(int ch, int fromIndex) :从fromIndex指定位置开始,获取ch在字符串中出现的位置。
          int indexOf(String str):返回的是str在字符串中第一次出现的位置。
          int indexOf(String str, int fromIndex) :从fromIndex指定位置开始,获取str在字符串中出现的位置。
          int lastIndexOf(int ch) :
  (2)判断。
     2.1 字符串中是否包含某一个子串: boolean contains(str)。
     特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1.表示该str不在字符串中存在。
     所以,也可以用于对指定判断是否包含。
         if(str.indexOf("aa")!=-1)
      而且该方法即可以判断,有可以获取出现的位置。
     2.2 字符中是否有内容。
          boolean isEmpty(): 原理就是判断长度是否为0.
     2.3 字符串是否是以指定内容开头。
         boolean startsWith(str);
     2.4 字符串是否是以指定内容结尾。
          boolean endsWith(str);
     2.5 判断字符串内容是否相同。复写了Object类中的equals方法。
          boolean equals(str);
     2.6 判断内容是否相同,并忽略大小写。
          boolean equalsIgnoreCase();
 (3)转换。
     3.1 将字符数组转成字符串。
         构造函数:String(char[])
         String(char[],offset,count):将字符数组中的一部分转成字符串。
      静态方法:
         static String copyValueOf(char[]  data);
        static String copyValueOf(char[] data, int offset, int count)
         static String valueOf(char[]):
     3.2 将字符串转成字符数组。**
          char[] toCharArray():
     3.3 将字节数组转成字符串。
           String(byte[])
           String(byte[],offset,count):将字节数组中的一部分转成字符串。
     3.4 将字符串转成字节数组。
           byte[] getBytes():
    3.5 将基本数据类型转成字符串。
          static String valueOf(int)
          static String valueOf(double)
          //3+"";//String.valueOf(3);
          特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
  (4)替换
         String replace(oldchar,newchar);
  (5)切割
         String[] split(regex);
  (6)子串。获取字符串中的一部分。
         String substring(begin);
         String substring(begin,end);包含头 不包含尾。
  (7)转换,去除空格,比较。
     7.1 将字符串转成大写或则小写。
          String toUpperCase();
          String toLowerCase();
     7.2 将字符串两端的多个空格去除。
          String trim();
         7.3 对两个字符串进行自然顺序的比较。
          int compareTo(string);//ASCII码的值相减。
      数组获得一个字符串:
            String str = String.copyValueOf(k);//将数组变为字符串。
            或者new String(k);

举例:对字符串中字符进行自然顺序排序。
思路:
1,字符串变成字符数组。
2,对数组排序,选择,冒泡,Arrays.sort();
3,将排序后的数组变成字符串。
代码示例:

   public static void main(String[] args) {
            System.out.println(getOrder("sgadxcvxcvags"));
     } 
 private static String getOrder(String s) {
      char[] arr = s.toCharArray();
      for(int x=0;x<arr.length-1;x++){
           for(int y=0;y<arr.length-x-1;y++){
           if(arr[y]>arr[y+1]){
           char temp = arr[y+1];
           arr[y+1] = arr[y];
           arr[y] = temp;
        }
     }
  }
      String s2 = new String(arr);
      return s2;
} 
2.StringBuffer:字符串缓冲区
它是一个容器,里面存储的字符串即字符串缓冲区。
特点:
    1,长度是可变化的。
    2,可以字节操作多个数据类型。
    3,最终会通过toString方法变成字符串。
基本方法:  
(1)存储。
     StringBuffer append():将指定数据作为参数添加到已有数据结尾处。
     StringBuffer insert(index,数据):可以将数据插入到指定index位置。
(2)删除。
     StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。
     StringBuffer deleteCharAt(index):删除指定位置的字符。
(3)获取。
      char charAt(int index)
     int indexOf(String str)
      int lastIndexOf(String str)
      int length()
     String substring(int start, int end)
(4)修改。
     StringBuffer replace(start,end,string);
     void setCharAt(int index, char ch) ;
(5)反转。
     StringBuffer reverse();
(6) 将缓冲区中指定数据存储到指定字符数组中。
     void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

   JDK1.5 版本之后出现了StringBuilder,它与StringBuffe基本类似。
StringBuffer是线程同步。StringBuilder是线程不同步。
以后开发,建议使用StringBuilder
将 StringBuilder 的实例用于多个线程是不安全的。如果需要这样的同步,则建议使用StringBuffer
升级三个因素:
    (1)提高效率。
    (2)简化书写。
    (3)提高安全性。

3.基本数据类型包装类:
 byte   Byte
 short  Short
 int     Integer
 long   Long
 boolean Boolean
 float  Float
 double Double
 char   Character
基本数据类型对象包装类的最常见作用,
就是用于基本数据类型和字符串类型之间做转换
字符串转成基本数据类型。
    xxx a = Xxx.parseXxx(String);
    int a = Integer.parseInt("123"); 
    double b = Double.parseDouble("12.23");
     boolean b = Boolean.parseBoolean("true");
     Integer i = new Integer("123");
     int num = i.intValue();
 十进制转成其他进制。
     toBinaryString();
     toHexString();
     toOctalString();
其他进制转成十进制 
    parseInt(string,radix);

JDK 1.5版本以后可以自动装箱。
Integer x = 4;//自动装箱。//new Integer(4)
 x = x/* x.intValue() */ + 2;
 x 进行自动拆箱。变成成了int类型。和2进行加法运算,再将和进行装箱赋给x。

代码示例:

Integer m = 128;
     Integer n = 128;
     System.out.println("m==n:"+(m==n)); //falses

      Integer a = 127;
      Integer b = 127;
      System.out.println("a==b:"+(a==b));//结果为true。因为a和b指向了同一个Integer对象。
因为当数值在byte范围内容,对于新特性,如果该数值已经存在,则不会在开辟新的空间。

相关文章推荐

Java基础日记———多线程

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- 一.概述 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程...

Java基础日记———IO流(下)

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- 一.概述 1.File: 用来将文件或者文件夹封装成对象。 方便对文件与文件夹的属...

Java基础日记———网路编程

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- 一.概述 1.网络模型:OSI参考模型和TCP/IP模型如图: 2.网络通信三要素:IP地址,端口号,传输...

Java基础日记———异常

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- 一.概述 (1)异常:就是程序在运行时出现不正常情况。 异常由来:问题也是现实生活中一个具体的事物...

Java基础日记———Map

——<a href=”http://www.itheima.com” target=”blank”>Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ——- 一....

Java基础日记———Java的三大特性(下)

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-一.继承 1.继承概述: (1)提高了代码的复用性。 (2)让类与类之间产生了关系。有了这个关系,...

黑马程序员————学习日记【1】 【Java开发前奏】

-------android培训、java培训、期待与您交流! ----------   一、常见dos命令行 dir:列出当前目录下的文件和文件夹 md:创建目录 rd:删除目录 c...

黑马程序员_学习日记38_602基础加强(string、StringBuilder、Object.ReferenceEquals)

重写不能修改方法的访问修饰符   常用类库 1、string l        字符串的特性: (1)不可变性 (2)字符串池(针对字符串常量):当程序中有多个相同的字符串常量时,这时,它...

黑马程序员java学习日记——字符串String

------- android培训、java培训、期待与您交流! ---------- 字符串最大特点:一旦被初始化就不可以被改变。 String s1 = "abc"; 与Stri...

黑马程序员Java学习日记(3)异常,String,多线程

------- android培训、java培训、期待与您交流! ----------      黑马程序员Java学习日记(3)异常,String,多线程 1.异常处理机制: (1)概念:就...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java基础日记———String
举报原因:
原因补充:

(最多只允许输入30个字)