`
- 浏览:
18658 次
- 性别:
- 来自:
西安
-
String类和StringBuffer类 (转)
***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指定的数值超过了当前字符串的长度,则返回一个空字符串)
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
String、StringBuilder和StringBuffer的区别 String、StringBuilder和StringBuffer的区别 String、StringBuilder和StringBuffer的区别
String,StringBuffer,StringBuilder区别。几乎所有的应用开发都离不开操作字符串,理解字符串的设计和实现以及相关 工具如拼接类的使用,对写出高质量代码是非常有帮助的
JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据.这个String类提供了数值不可改变的字符串.而这个StringBuffer类提供的字符串进行修改.当你知道字符数据要改变的时候...
string和StringBuffer的区别
String StringBuffer和StringBuilder 区别之源码解析 从源码角度简单对它们之间的区别进行了验证
主要为大家详细介绍了JAVA中String类与StringBuffer类的区别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
从非常细致的角度分析了String和Stringbuffer的主要区别
【Java基础笔记】String类以及StringBuffer Builder.docx
String的效率低于StringBuffer,开发时最好选用StringBuffer。
String及StringBuffer和StringBuilder的区别
String ,StringBuffer与StringBuilder的区别
针对String的详细介绍针对String的详细介绍针对String的详细介绍针对String的详细介绍针对String的详细介绍针对String的详细介绍针对String的详细介绍针对String的详细介绍针对String的详细介绍针对String的详细介绍...
介绍了String、StringBuffer、StringBuilder的使用方法,以及理论知识
简单的介绍了String、StringBuffer和StringBuilder的区别
主要介绍了Java中字符数组、String类、StringBuffer三者之间相互转换,需要的朋友可以参考下
java面试笔试题String 和StringBuffer的区别
StringBuffer:字符创变量 StringBuilder:字符创变量 从上面的名字可以看到,String是“字符创常量”,也就是不可改变的对象。对于这句话的理解你可能会产生这样一个疑问 ,比如这段代码:
JAVA中String与StringBuffer的区别 JAVA中String与StringBuffer的区别 自己的学习笔记总结
StringBuffer和String_区别 java.lang.StringBuffer线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的...