`
winie
  • 浏览: 222426 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Java中String,StringBuffer,StringTokenizer类

    博客分类:
  • java
阅读更多
String类:
java.lang.String类,不属于8种基本数据类型,String是一个对象,表示字符串常量。
因为对象的默认值是null,所以String的默认值也是null,但它又是一种特殊的对象,有其他对象没有的特性。
new String()和new String("")都是声明一个新的空字符串,是空串不是null。区别:空串是经过new运算符分配了内存,即实际存在了(定义了)。而null则没有(只声明),调用null的字符串的方法会抛出空指针异常。

从根本上认识java.lang.String类和String池。
1、String类是final的,不可被继承。public final class String。
2、String类的本质是字符数组char[],并且其值不可改变。private final char value[];
3、String类对象有个特殊的创建方式,如String x="abc"; "abc"就表示一个字符串对象,而x是"abc"对象的地址,叫做"abc"引用。
4、Java运行时会维护一个String pool(String池),String池中的字符串内容不可重复,而一般对象(非String类)不存在这个缓冲池,并且创建的对象仅仅用于方法的堆栈区。
5、创建字符串的方式归纳起来有三种:
<1>、使用new关键字创建字符串,String s = new String("abc");
<2>、直接指定,String s = "abc";
<3>、使用串联生成新的字符串,String s = "ab" + "c";
String对象的创建:
1、当使用任何方式来创建一个字符串对象s时,JVM会拿这个s在String池中找是否存在内容相同的字符串对象。如果不存在,则在池中创建一个字符串s,否则,不在池中添加。
2、Java中,只要使用new关键字类创建对象,则一定会(在堆区或栈区)创建一个新对象。
3、使用直接指定或者使用纯字符串串联来创建String对象,则仅仅会检查维护String池中的字符串,池中没有就在池中创建一个,有则直接返回已有的字符串对象地址(引用)。绝不会在堆栈去再创建该String对象。
4、使用包含变量的表达式来创建String对象,则不仅会检查维护String池,而且还会在堆栈区创建一个String对象。

String的不可变性:
不可变字符串具有一个很大的有点:编译器可以把字符串设置为共享。
String类型是不可改变的,比如当你想改变一个String对象时,如:
String s = "abc";
s = "fuck";
JVM 不会改变原来的对象("abc"),而是生成一个新的String对象("fuck",当然先检查String池中是否已经有"fuck"字符串对象,有则引用,无则新建),然后让s去指向它,如果原来那个"abc"没有任何对象引用它,虚拟机的垃圾回收机制会接收它。这样可以提高运行效率!
注意:Java中字符串内容的比较用的是专门的方法如equals,compareTo等。==比较的是字符串的引用是否相同。


StringBuffer类:
字符串变量。可修改的字符串序列,该类的对象实体内存空间可以自动改变大小,便于存放一个可变的字符序列。
StringBuffer类有3个构造方法:
StringBuffer()
StringBuffer(int size)
StirngBuffer(String s)
当使用第1个无参数的构造方法时,分配给该对象的实体初始容量可以容纳16个字符,当该扩展字符序列长度>16时,实体容量自动增加以适应新字符串。
当使用第2个构造方法,可以指定分配给该对象的实体的初始容量为参数size指定的字符个数。当对象实体长度>size时自动增加。
当使用第3个构造方法,分配给该对象的实体的初始容量为参数字符串s的长度+16个字符,当对象实体长度大于初始容量时,实体容量自动增加。
StringBuffer对象可以通过length()放发获取实体存放的字符序列长度。通过capacity()方法获取当前实体的实际容量。


StringTokenizer类:
使用java.util.StringTokenizer类,分析一个字符串并分解成可独立使用的单词。
StringTokenizer类有两个常用构造方法:
StringTokenizer(String s):为字符串s构造一个分析器。使用默认的分隔符集合,即空格符(若干个空格符被看做一个空格)、换行符、回车符、Tab符、进纸符(\f)。
StringTokenizer(String s, String dilim):为字符串s构造一个分析器。参数dilim中的字符被作为分隔符。

把StringTokenizer 对象称作一个字符串分析器。一个分析器可以使用nextToken()方法逐个获取字符串中的语言符号(单词),每当调用nextToken()时,都将在字符串中获得下一个语言符号,每获得一个语言符号,字符串分析器中负责计数的变量值自动减1,该计数变量的初始值等于字符串中的单词数目(可以用 StringTokenizer对象调用countTokens()方法获得计数值)。
如:
String str="we are stud,ents";
StringTokenizer fenxi = new StringTokenizer(str,", "); //使用空格和逗号做分隔符
int count=fenxi.countTokens();
while(fenxi.hasMoreElements())
{
String s = fenxi.nextToken();
System.out.println(s);
}
System.out.println("共有单词:"+count+"个。");

另外,StringTokenizer可以用String类的split函数代替
String str="abc;bcd;efg";
String[] splitStrs=str.split(";");
for(int i=0;i<splitStrs.length;i++)
System.out.println(splitStrs[i]);
分享到:
评论

相关推荐

    JAVA StringBuffer类与StringTokenizer类代码解析

    JAVA StringBuffer类是Java语言中的一种字符串处理类,提供了一个字符串的可变序列,类似于String类,但它对存储的字符序列可以任意修改,使用起来比String类灵活得多。StringBuffer类的主要特点是可以动态地增加或...

    JAVA小论文(浅谈String类)

    Java提供了String类、StringBuffer类和StringTokenizer类来存储和处理字符串。在大多数情况下,可以使用String类来创建字符串。 String类在存储和处理字符串时非常有效,但是创建对象后,字符串的内容一旦确定则不...

    完整版 Java初级教程 Java语言程序设计 第7章 Java中的常用类(共14页).ppt

    【Java初级教程】Java语言程序设计的第7章主要探讨了Java中的一些常用类,包括`java.lang.String`、`java.lang.StringBuilder`和`java.util.StringTokenizer`。以下是对这些类的详细解释: 1. **`java.lang.String`...

    java常用类.rtf

    JAVA常用类的使用方法 1、Integer类 2、Float类 3、Double类 4、Character类 5、String类 6、StringTokenizer类 7、StringBuffer类 8、Random类 9、UIManage类

    java实验报告心得.doc

    本实验报告旨在掌握 Java 基础知识,包括 String 类、StringBuffer 类、Math 类、包装类和 StringTokenizer 类等。通过实验,学生可以熟悉 Java 基础编程概念和技术。 一、String 类 *equals() 方法和 "==" 运算符...

    java常用类的使用方法

    本文将深入探讨几个核心类:Integer、Float、Double、Character、String、StringTokenizer、StringBuffer以及Random,解析它们的功能与应用场景,帮助开发者更好地利用这些类来解决实际问题。 ### Integer类 `...

    java课件-6-字符串和数组.pptx

    "Java字符串和数组" Java核心编程中,字符串和数组是...Java中的字符串和数组是两种非常重要的数据类型,String类和StringBuffer类提供了许多有用的方法来操作字符串,而数组提供了一个存储多个同类型数据的数据结构。

    java常用类使用方法

    在Java.lang包中,我们有如Integer、Float、Double、Character、String、StringTokenizer和StringBuffer等类,这些类在日常开发中经常被使用。 1. **Integer类**:Integer是Java中用于包装基本类型int的类。它提供...

    JAVA常用类的使用方法

    在Java编程语言中,有许多内置的类提供了各种实用功能,大大简化了开发工作。以下是一些常用的Java类及其主要使用方法: 1. **Integer 类**: - Integer 类是 Java 中对基本数据类型 int 的封装类。它提供了一些...

    java常用类的使用方法.pdf

    Java语言中提供了多种常用类,例如Integer类、Float类、Double类、Character类、String类、StringTokenizer类、StringBuffer类、Random类等,这些类提供了许多实用的方法,以便开发者更方便地进行编程。本文将详细...

    Java程序开发教学课件:06-Java标准类库1.ppt

    总之,Java中的字符串处理机制强大且灵活,通过`String`、`StringBuffer`(或`StringBuilder`)、`StringTokenizer`等类的合理使用,开发者可以有效地处理和操作字符串,满足各种编程需求。在实际开发中,理解并熟练...

    初学者指南 JAVA常用类的使用方法.doc

    在Java编程中,掌握常用的类是提高编程效率和代码质量的关键。以下是一些常见的Java类及其使用方法: 1. **Integer 类** - Integer 类是Java中的包装类,用于封装基本类型int。它提供了许多实用的方法,例如: - ...

    Java方法实例

    在Java中,我们可以通过`System`类来获取环境变量以及系统的一些基本属性。 1. **获取环境变量:** ```java String path = System.getenv("PATH"); // 获取PATH环境变量 String javaHome = System.getenv("JAVA...

    Java常用类.pdf

    在Java中,`java.lang.Object`是最基础的类,所有其他类都直接或间接继承自它。Object类提供了几个关键的方法,如`hashCode()`、`toString()`、`equals()`和`finalize()`。 `hashCode()`方法返回对象的哈希码,这在...

    自考java语言程序设计一试题及答案(完整版).docx

    Java 语言提供了多种字符串处理类,例如 String、StringBuffer、StringTokenizer 等。这些类可以用来分析字符串,提取子字符串,进行字符串替换等操作。例如,要将字符串分解成单词,可以使用 StringTokenizer 类。 ...

    JAVA常用8种类的使用方法详解

    本文将深入解析八个常见的Java类:`Integer`、`Float`、`Double`、`Character`、`String`、`StringTokenizer`、`StringBuffer`和`Random`,以及它们在实际开发中的应用。 #### Integer类详解 `Integer`类在Java中...

    java提高的必需学好java必需品,这是我从老师那总结出来的java题,各种的,涵盖全面,考试必备

    - `StringDemo`: Java中的字符串是不可变的,`String`类提供了大量的方法进行字符串操作,如`concat()`, `substring()`, `indexOf()`, `replace()`, `trim()`等。 - `StringTokenizerDemo`: `StringTokenizer`类...

Global site tag (gtag.js) - Google Analytics