java学习笔记(十)----String类和StringBuffer类

原创 2006年05月31日 13:02:00

***String类和StringBuffer类
--------------------------
String类对象中的内容一旦被初始化就不能再改变
StringBuffer类用于封装内容可以改变的字符串,可以将其它各种类型的数据增加,插入到字符串中,也可以翻转字符串中原来的内容。一旦通过StringBuffer生成了最终想要的字符串,就应该使用StringBuffer.toString方法将其转换成String类,然后,就可以使用String类的各种方法操纵这个字符串了。
用toString方法转换成String类型
String x="a"+4+"c"编译时等效于 String x=new StringBuffer().append("a").append(4).append("c").toString();

字符串常量(如"hello")实际上是一种特殊的匿名String对象
1. String s1="hello"; String s2="hello";
   s1和s2指的是同一个对象  if (s1==s2) 结果是true
2. String s1=new String("hello"); String s2=new String("hello")
   s1和s2指的是不同的对象 if (s1==s2) 结果是flase

例: 逐行读取键盘输入,直到输入内容为"bye"时,结束程序

public class ReadLine {
 public static void main(String[] args) {
  byte[] buf=new byte[1024];
  String strInfo=null;
  int pos=0;
  int ch=0;
  System.out.println("please enter info, input tye for exit:");
  while(true)
  { try{
     ch=System.in.read(); //read()方法会读取一个字节的数据
       }
    catch (Exception ex)
    { ex.printStackTrace();
    }      
   switch(ch)
   { case '/r': break;
     case '/n': strInfo=new String(buf,0,pos);
                if (strInfo.equals("bye"))
                { return;
                }
                else
                { System.out.println(strInfo);
                  pos=0;
                  break;
                }
     default :
          buf[pos++]=(byte)ch;
                  
   }
    }
 } 
}

------------------------------------------
String类的常用成员方法
构造方法
** String(byte[] bytes, int offset, int length)  //将一个字节数组的内容转换成字符串对象,从下标为offset的元素,一直取length个元素的内容
** equalslgnoreCase 是在比较两个字符串时忽略大小写, 比如以上程序中的strInfo.equals("bye")可改为strInfo.equalsIgnoreCase("bye"),这样无论输入大小写的bye都能退出
** indexOf(int ch)方法是用来返回一个字符在该字符串中的首次出现的位置,如果没有这个字符则返回"-1"
   如: System.out.println("hello world".indexOf('o'))  //输出结果为4
  它的另一种形式indexOf(int ch, int fromIndex) 反回的是从fromIndex指定的数值开始,ch字符首次出现的位置.
   如: System.out.println("hello world".indexOf('o',5))  //输出结果为7 
** substring(int beginIndex)  返回的是一个字符串中从beginIndex指定的数值到末尾的一个字符串
   如:   System.out.println("hello world".substring(6)) //返回从第6个字符开始一直到最后的字符,输出world 
  substring(int beginIndex, int endIndex) 返回的是当前字符串中从beginIndex开始到endIndex-1结束的一个字符串
   如:   System.out.println("hello world".substring(6,8)) //输出wo
  (如果beginIndex指定的数值超过了当前字符串的长度,则返回一个空字符串)

 

 

 

 

 

 

浅谈StringBuffer类初始容量及扩容

StringBuffer类可以创建可修改的字符串序列。该类有StringBuffer(),StringBuffer(int size),StringBuffer(String s)三个改造方法。 1....
  • yeweiyang16
  • yeweiyang16
  • 2016年06月24日 20:54
  • 5434

JAVA中StringBuffer类常用方法详解

String是不变类,用String修改字符串会新建一个String对象,如果频繁的修改,将会产生很多的String对象,开销很大.因此java提供了一个StringBuffer类,这个类在修改字符串...
  • linbooooo1987
  • linbooooo1987
  • 2012年05月03日 14:48
  • 34241

常见类---StringBuffer类

一.StringBuffer类的概述 StringBuffer类:线程安全的可变字符串序列 线程安全 —> 同步 —> 效率低 线程不安全 —> 不同步 —> 效率高 String和StringB...
  • lhgwp
  • lhgwp
  • 2017年08月01日 22:31
  • 170

StringBuffer类

回顾String类的特点: String类有两种实例化对象的方式,一种是直接赋值,只会开辟一块内存空间,而且对象可以自动入池,另外一种方式使用构造方法完成,会开辟两块空间,其中一块称为垃圾,并且不会自...
  • M983373615
  • M983373615
  • 2017年09月02日 23:36
  • 82

Java String类和StringBuffer类的区别

关于java的字符串处理我们一般使用String类和StringBuffer类 那么String类和StringBuffer类的区别在什么地方呢?     1、Stri...
  • zhangchen124
  • zhangchen124
  • 2014年04月29日 10:53
  • 1217

Java中 String类、StringBuilder类、StringBuffer类 区别与如何选择

Technorati 标签: String,StringBuilder;StringBuffer,区别;选择       关于这三者的区别,我们从官方API上很容易找到答案。 这里做了一下比较,并写...
  • daheiantian
  • daheiantian
  • 2010年12月31日 14:10
  • 4560

StringBuffer类

StringBuffer类             StringBuffer类和String类一样,也用来代表字符串,只是由于StringBuffer类的内部实现方法和String类不同,所以Stri...
  • LS1910831673
  • LS1910831673
  • 2016年11月17日 10:14
  • 112

常用包,String类,StringBuffer类,克服传值引用

Java常用的包有以下几个:Java.lang,这个 包通常不用import导入,他会自动被东如,包含有String,Math,Integer,System,Runtime等类;Java.applet...
  • angles_yxy
  • angles_yxy
  • 2007年08月02日 09:12
  • 2615

JAVA中String类和StringBuffer类的区别

String类用来表示那些创建后就不会再改变的字符串,它是immutable的。而StringBuffer类用来表示内容可变的字符串,并提供了修改底层字符串的方法。           当我们进行字...
  • Ada168855
  • Ada168855
  • 2012年08月05日 19:47
  • 676

String类和StringBuffer类的主要差别

String和StringBuffer是面试时,必考的知识点,我们应该进行牢固的掌握。
  • GUO18735177413
  • GUO18735177413
  • 2015年01月16日 15:18
  • 650
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java学习笔记(十)----String类和StringBuffer类
举报原因:
原因补充:

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