`
O.Lions
  • 浏览: 37379 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

谈谈String和StringBuffer

    博客分类:
  • J2SE
阅读更多

String类和StringBuffer类主要用来处理字符串的。

       两个类提供了很多字符串的实用处理方法。

String类是不可变的,一个String对象包含的字符串内容是永远不会被改变的

StringBuffer类是可变类,一个StringBuffer对象所包含的字符串内内容可以被添加和修改。 

String类的常用方法:

         1: length(): 返回字符串的个数

          2:char charAt(int index): 返回字符串index位置上的字符。

          3:getChars(int srcBegin,int srcEnd,char dst[ ] ,int dstbegin): 从当前的字符串拷贝若干字符到参数

               指定的字符数组 dst[ ] 中。 从srcBegin位置开始取字符,到srcEnd -1位置结束,dstbegin 为提取字符

               存放到字符数组中的起始位置。如果参数 dst 为null ,则会抛出  “空指针”异常 。

                                                 String s="0123456";


                                                char[] chars=new char[3];


                                                s.getChars(1,4,chars,0);


                                    for(int i=0; i<chars.length;i++)    {
                                                  System.out.println(chars[i]);
                                     }

                 4: equals(object str)和 equalsIgnoreCase(object str):  判断两个字符串对象的内容是否相同。

                          两个方法的区别在于:equalsIgnoreCase(object str)方法不区分字母的大小写,而equals  

                         (object str)方法则区分字母的大小写。

              5:indexOf() 和lastIndexOf(): 在字符串中检索特定字符或子字符串。 前者从字符串的首位开始查找,

                     后者从字符串的末尾开始查找。如果找到,就返回匹配的“位置”。

               6: concat(String str): 把字符 str 附加在当前字符串的末尾。这个方法不会改变字符串的内容。

              7:substring(); 返回一个字符串的一个子字符串,两种重载形式:

                           public String substring(int beginIndex)

                           public String substring(int beinIndex, int endIndex)

              8: replace(String  a, String b) : 讲字符串的 a 替换成为 b .

                  replaceAll(String regex, String replacement) : 替换源字符串中所有的 regex.

             9: trim(): 把字符串首尾的空格删除。

              10: String valueOf() :  把基本类型转换为 Sting 类型

                  注: String 类提供的方法,丢更改字符串的都是产生一个新的子字符串,并不会更改源字符串的内

                           容。

 

               StingBuffer  类:

           StringBuffer类表示字符串缓存。

           常用方法:

                 1: length() : 返回字符串的字符个数。 用户和 String 类相同

                 2:append(); 向缓存区添加新的字符串

                3:toString(); 返回缓存区内的字符串。

                4:charAt(int index) 和 setCharAt(int index, char ch): 前者用法与 String 类的相同。

                       后者则在字符串中的index 位置放置字符 ch .

                 5: getChars(int srcBegin,int srcEnd,char dst[ ] ,int dstbegin):  用法和 String 类一样

                 6:substring() :  用法和String 类一样。

                 7 : insert(int offset , String str) : 字符串中的 offset 位置插入字符串 str .

 

         String 类 和 StringBuffer 类的比较:

              相同:

          1:  都是用来处理字符串的

           2:都提供了 length() , toString() ,charAt() , substring() 方法 ,用法一样

          3:对于String 类 和 StringBuffer 类,字符在字符串中的索引位置都从 0 开始。

           4:两个类的 substring( int beginIndex, int endIndex)方法都是用来截取字符串,且范围都是从

                 beginIndex 开始, 到 endIndex--1 为止。

                 不同:

          1: String 类 是不可变类 , StringBuffer 类 是可变类

                   String 类提供的 比如  substring ,replace 等方法 都不会更改字符串内容,实际上是创建一个方法

                   所浮于特性的新字符串。 返回一个改变后内容的新字符串。

                  StringBuffer 的 appeng(),等方法都会改变字符缓冲区中的字符串内容。

           2: String 类 覆盖了Object类的 equals()方法

                    StringBuffer类没有覆盖

            3: 都覆盖了Object()类的 toString() 方法,实现不一样

                   String类的toString() 方法返回当前String实例本身的引用。

                  StringBuffer类的toString方法返回一个以当前StringBuffer的缓冲区中的所有字符串为内容的新的

                     String对象的引用。

           4: String 对象可以用 操作符 "+ " 进行连接

                   StringBuffer 不能

分享到:
评论

相关推荐

    浅析我对 String、StringBuilder、StringBuffer 的理解

    在Java编程语言中,String、StringBuilder和StringBuffer都是用来处理字符串的类,但它们之间存在显著的区别和使用场景。下面是对这三个类的深入理解和分析。 首先,String类是最常见的字符串对象,它以其不可变性...

    Android 面试-笔试题

    String、StringBuffer、StringBuilder的区别 什么是内部类?内部类的作用 抽象类和接口的区别 抽象类的意义 抽象类与接口的应用场景 抽象类是否可以没有方法和属性? 接口的意义 泛型中的extends和super的区别 父类...

    2023最新Android 面试篇(2303版).pdf

    本资源摘要信息涵盖Java基础知识点,主要涉及Java中的数据类型、equals和hashCode方法、基本数据类型和引用类型的区别、多态的理解、String、StringBuffer和StringBuilder的区别等。 1. Java中==和equals和hashCode...

    Java 核心 API的包PPT学习教案.pptx

    接下来,我们谈谈`String`和`StringBuffer`。`String`类用于表示不可变的字符序列,它是Java中的基本类型之一。创建`String`对象可以通过直接赋值或者使用构造函数完成,如`String name = "Petter";`或`String name ...

    简单谈谈Java中String类型的参数传递问题

    在示例中,如果我们将`String`替换为`StringBuffer`,`changeStringBuffer`方法可以通过引用修改`StringBuffer`对象的内容,从而在`main`方法中看到变化,因为这里涉及到的是对象的状态修改,而不是引用的改变。...

    java面试问题总结

    9.StringBuffer和StringBuilder的区别?(实际面试题) 1.在执行速度方面的比较:StringBuilder 快于 StringBuffer 2. StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符...

    一些面试中出现率比较高的题

    2016,一些面试中出现率...String、Stringbuffer、StringBuilder的区别? ArrayList和LinkedList有什么区别 类的实例化顺序、比如父类静态数据、构造函数、字段、子类静态数据、构造函数、字段、他们的执行顺序。。。。

    Android 面试、笔试题集锦.zip

    Java 部分(一)基础知识点 ...String、StringBuffer、StringBuilder的区别 什么是内部类?内部类的作用 抽象类和接口的区别 抽象类的意义 抽象类与接口的应用场景 抽象类是否可以没有方法和属性? 接口的意义

    Java面试突击-V3.01

    在处理字符串时,根据场景选择合适的工具(`String`、`StringBuilder`或`StringBuffer`)以及理解方法的重载和重写原理,能够帮助开发者写出高效且安全的代码。在多线程环境下,尤其需要注意线程安全问题,选择适当...

    java面试要点集合

    3、String和StringBuffer区别 4、jsp有哪些动作标记 5、动态Include和静态Include的区别 6、Exception中Finally的用法 7、jsp的内置对象有哪些 北京环贸通科技有限公司 1、jsp两种跳转方式 2、struts标签库有哪些 ...

    java基础知识

    再来谈谈String的不变性。String在Java中被设计为不可变类,意味着一旦创建,它的内容就不能改变。例如: ```java String s = "Hello "; s = s + " world!"; ``` 在这个例子中,`s`最初指向的"Hello "字符串对象并未...

    30天搞定Java–day20

    文章目录每日一考和复习Java常用类字符串相关的类String类String的特性String陷阱String常用方法String和其他类型转换StringBuffer类、StringBuilder类StringBuffer的常用方法效率对比JDK 8之前的日期时间API ...

    安卓java读取网页源码-AndroidLearningNotes:第一次提交

    String、StringBuffer、StringBuilder区别 什么是内部类?内部类的作用 抽象类的意义 抽象类与接口的应用场景 抽象类是否可以没有方法和属性? 接口的意义 泛型中extends和super的区别 父类的静态方法能否被子类重写...

    Java就业面试题264道(独家奉献)

    String和StringBuffer的区别?** - `String`是不可变的,每次修改都会创建一个新的对象。 - `StringBuffer`是可变的,可以在原有基础上修改。 **56. 如何把一段逗号分割的字符串转换成一个数组?** - 使用`split()`...

    java面试宝典

    23、String 和StringBuffer 的区别? 10 24、String, StringBuffer StringBuilder 的区别。 10 25、Overload 和Override 的区别。Overloaded 的方法是否可以改变返回值的类型? 10 27、描述一下JVM 加载class 文件的...

    200个Java经典面试题总结附带答案.docx

    (使用 `StringBuilder` 或者 `StringBuffer`) Java面向对象 8. 普通类和抽象类有什么区别?(普通类可以实例化,抽象类不能实例化) 9. 接口和抽象类有什么区别?(接口只能定义方法,抽象类可以定义方法和属性...

    java公司面试题

    String、StringBuffer、StringBuilder的区别 - **String**: 不可变的对象类型,一旦创建后其值就不能改变。适合于那些需要经常比较而很少改变的字符串场景。 - **StringBuffer**: 可变字符串类,线程安全,适用...

    Java预备面试题

    #### 六、STRING与STRINGBUFFER的区别 - **String**: - 不可变的字符序列。 - 适合于只读字符串场景。 - **StringBuffer**: - 可变的字符序列。 - 适合于频繁修改的字符串场景。 - `StringBuffer`在多线程环境...

    安卓面试习题及答案

    字符串处理在安卓开发中也十分常见,`String` 类型的字符串是不可变的,而 `StringBuffer` 提供了可变的字符序列,适合在需要频繁修改字符串内容的场景下使用。在面试中,面试官可能会要求不使用第三方库来实现字符...

Global site tag (gtag.js) - Google Analytics