ITPub博客

首页 > Linux操作系统 > Linux操作系统 > java String (五)

java String (五)

原创 Linux操作系统 作者:xiangying816 时间:2010-06-04 10:24:54 0 删除 编辑
1.String 的两种实例化方法:
    |- String str1="hello";//使用直接赋值的方式完成
    |- String str2=new String("广告");//通过构造方法完成
2.第一种实例化方式只分配一块堆内存空间,第二种分配了两块,但最后只指向最后new的那块。
3.String的比较
  “==”比较的是两个对象的地址是否相等,具体来说比较的是地址的值。而equals才是比较字符串的内容
如:
public class StringDemo02{
 public static void main(String args[]){
  String str1 = "hello" ; // 直接赋值完成
  String str2 = new String("hello") ; // 通过构造方法完成
  String str3 = str2 ; // 通过构造方法完成
  System.out.println("str1 == str2 --> " + (str1==str2)) ; // false
  System.out.println("str1 == str3 --> " + (str1==str3)) ; // false
  System.out.println("str2 == str3 --> " + (str2==str3)) ; // true
 }
};
public class StringDemo05{
 public static void main(String args[]){
  String str1 = "hello" ;  
  String str2 = "hello" ; 
  String str3 = "hello" ; 
  System.out.println("str1 == str2 --> " + (str1==str2)) ;  //true
  System.out.println("str2 == str3 --> " + (str2==str3)) ; //true
  System.out.println("str1 == str3 --> " + (str1==str3)) ; //true
 }
};

栈内存

Str1

 

     堆内存

  “hello”

   "world"

  "hello word"

4.字符串的内容一旦声明就无法更改
例如:
public class StringDemo{
    public static void main(String args[]){
          String str="hello";
              str+="world";
          System.out.println(str);
    }
}
虽然打印出来的是“hello world”,但是str的值内容的值即hello仍然没变,它只是指向了另一块新开辟的地址空间,"hello", 包括“world" 都会变成垃圾

5.一个字符串实际上就是String 类的一个匿名对象,即可以调用String类的任何方法
例如:
public class StringDemo04{
 public static void main(String args[]){
  String str1 = "hello" ;
  System.out.println("hello".equals(str1)) ;
 }
};
6.字符串相关方法:
 将字符串变成字符数组:public char[] toCharArray()
 将字符数组变成字符串:public String (char[] value)
  将部分字符串变成String类型 public String(char[] value,int offset,int count)
public class StringAPIDemo02{
 public static void main(String args[]){
  String str = "hello world !!!@" ;
  char c[] = str.toCharArray() ;  // 将字符串变为字符数组
  for(int i=0;i   System.out.print(c[i] + "﹜");
  }
  String str1 = new String(c) ; // 将全部的字符重新变为String
  String str2 = new String(c,0,5) ; // 将0~5之间的字符重新变为String
  System.out.println("\n"+str1) ;
  System.out.println(str2) ;
 }
};
7.字节与字符串
  public byte[] getBytes()
  字节数组->String
 |-全部:public String(byte[] bytes)
 |-部分:public String(byte[] bytes,int offset,int length)
String str = "hello world !!!@" ;
  byte b[] = str.getBytes() ; 
  String str1 = new String(b) ; 
  String str2 = new String(b,0,5) ;
8.在循环数组时是length;而字符串是:length()方法。
9.
字符串拆分:split("#")
10.字符串查找:string.contains("##")--一般不怎么使用
                              string.indexOf("##")//等于-1没找到,不等于-1即找到了
                              
string.indexOf("#",n)//指定开始查找

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15127599/viewspace-664370/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: java面向對象(三)
下一篇: erp 經典簡化回顧
请登录后发表评论 登录
全部评论

注册时间:2011-03-02

  • 博文量
    90
  • 访问量
    187393