String类和StringBuffer类

位于java.lang包中,这个包中的类使用时不用导入

String类一旦初始化就不可以改变,而stringbuffer则可以。它用于封装内容可变的字符串。它可以使用tostring()转换成string字符串。

String x=”a”+4+”c”编译时等效于String x=new StringBuffer().append(“a”).append(4).append(“c”).toString();

字符串常量是一种特殊的匿名对象,String s1=”hello”;String s2=”hello”;则s1==s2;因为他们指向同一个匿名对象。

如果String s1=new String(“hello”);String s2=new String(“hello”);则s1!=s2;

 

/*逐行读取键盘输入,直到输入为“bye”时,结束程序

注:对于回车换行,在windows下面,有' '和' '两个,而unix下面只有' ',但是写程序的时候都要把他区分开*/

 1 public class readline
 2 {
 3 public static void main(String args[])
 4 {
 5 String strInfo=null;
 6 int pos=0;
 7 byte[] buf=new byte[1024];//定义一个数组,存放换行前的各个字符
 8 int ch=0; //存放读入的字符
 9 system.out.println(“Please input a string:”);
10 while(true)
11 {
12 try
13 {
14 ch=System.in.read(); //该方法每次读入一个字节的内容到ch变量中。
15 }
16 catch(Exception e)
17 {
18 }
19 switch(ch)
20 {
21 case '
': //回车时,不进行处理
22 break;
23 case '
': //换行时,将数组总的内容放进字符串中
24 strInfo=new String(buf,0,pos); //该方法将数组中从第0个开始,到第pos个结束存入字符串。
25 if(strInfo.equals("bye"))   //如果该字符串内容为bye,则退出程序。
26 {
27 return;
28 }
29 else   //如果不为bye,则输出,并且竟pos置为0,准备下次存入。
30 {
31 System.out.println(strInfo);
32 pos=0;
33 break;
34 }
35 default:
36 buf[pos++]=(byte)ch;  //如果不是回车,换行,则将读取的数据存入数组中。
37 }
38 }
39 }
40 }
原文地址:https://www.cnblogs.com/borter/p/9434062.html