java String类、StringBuffer类
介绍一下Java的一些主要类,String类、StringBuffer类。
Java是一种真正的面向对象的语言,即使是开发简单的程序,也必须设计对象。Java自身也为我们提供了许多已设计好的类,要想灵活使用Java进行编程,熟悉Java的这些主要类将是必不可少的前提条件之一。
String 类 顾名思义,String是串的意思,这个类是字符串常量的类。相信使用过C语言进行编程的人都知道字符串是怎么回事,这里就不再进行赘述了。但有一点要说明的是,Java中的字符串和C语言中的字符串是有区别的。在C语言中,并没有真正意义上的字符串,C语言中的字符串就是字符数组,使用起来非常的灵活。而在Java中,字符串常量是一个类——String类,它和字符数组是不同的。
下面先介绍一下String类的构造函数
public String()
这个构造函数用来创建一个空的字符串常量。
如:String test=new String();
或:
String test;
test=new String();
public String(String value )
这个构造函数用一个已经存在的字符串常量作为参数来创建一个新的字符串常量。
另外值得注意的是,Java会为每个用双引号"......"括起来的字符串常量创建一个String类的对象。如:String k="Hi."; Java会为"Hi." 创建一个String类的对象,然后把这个对象赋值给k。等同于:
String temp=new String("Hi.");
String k=temp;
这个构造函数的用法如:
String test=new String(k); (注:k是一个String类的对象)
String test=new String("Hello, world.");
public String( char value[] )
这个构造函数用一个字符数组作为参数来创建一个新的字符串常量。
用法如:
char z[]={'h','e','l','l','o'};
String test=new String(z);
(注:此时test中的内容为"hello")
public String( char value[], int offset, int count )
这个构造函数是对上一个的扩充,用一句话来说,就是用字符数组value,从第offset个字符起取count个字符来创建一个String类的对象。用法如:
char z[]={'h','e','l','l','o'};
String test=new String(z,1,3);
(注:此时test中的内容为"ell")
注意:数组中,下标0表示第一个元素,1表示第二个元素……
如果 起始点offset 或 截取数量count 越界,将会产生异常
StringIndexOutOfBoundsException
public String( StringBuffer buffer )
这个构造函数用一个StringBuffer类的对象作为参数来创建一个新的字符串常量。
String类是字符串常量,而StringBuffer类是字符串变量,是不同的。StringBuffer类将在后面进行介绍。
String类的方法有:
public char charAt( int index )
这个方法用来获取字符串常量中的一个字符。参数index指定从字符串中返回第几个字符,这个方法返回一个字符型变量。用法如:
String s="hello";
char k=s.charAt(0);
(注:此时k的值为'h')
public int compareTo( String anotherString )
这个方法用来比较字符串常量的大小,参数anotherString为另一个字符串常量。若两个字符串常量一样,返回值为0。若当前字符串常量大,则返回值大于0。若另一个字符串常量大,则返回值小于0。用法如:
String s1="abc";
String s2="abd";
int result=s2.compareTo(s1);
(注:result的值大于0,因为d在ascII码中排在c的后面,则s2>s1)
public String concat( String str )
这个方法将把参数——字符串常量str 接在当前字符串常量的后面,生成一个新的字符串常量,并返回。用法如:
String s1="How do ";
String s2="you do?";
String ss=s1.concat(s2);
(注:ss的值为"How do you do?")
public boolean startsWith( String prefix )
这个方法判断当前字符串常量是不是以参数——prefix字符串常量开头的。是,返回true。否,返回false。 用法如:
String s1="abcdefg";
String s2="bc";
boolean result=s1.startsWith(s2);
(注:result的值为false)
public boolean startsWith( String prefix, int toffset )
这个重载方法新增的参数toffset指定 进行查找的起始点。
public boolean endsWith( String suffix )
这个方法判断当前字符串常量是不是以参数——suffix字符串常量结尾的。是,返回true。否,返回false。用法如:
String s1="abcdefg";
String s2="fg";
boolean result=s1.endsWith(s2);
(注:result的值为true)
public void getChars( int srcBegin, int srcEnd, char dst[], int dstBegin )
这个方法用来从字符串常量中截取一段字符串并转换为字符数组。
参数srcBegin为截取的起始点,srcEnd为截取的结束点,dst为目标字符数组,dstBegin指定将截取的字符串放在字符数组的什么位置。实际上,srcEnd为截取的结束点加1,srcEnd-srcBegin为要截取的字符数,用法如:
String s="abcdefg";
char z[]=new char[10];
s.getChars(2,4,z,0);
(注:z[0]的值为'c',z[1]的值为'd',截取了两个字符 4-2=2)
public int indexOf( int ch )
这个方法的返回值为 字符ch在字符串常量中从左到右第一次出现的位置。若字符串常量中没有该字符,则返回-1。用法如:
String s="abcdefg";
int r1=s.indexOf('c');
int r2=s.indexOf('x');
(注:r1的值为2,r2的值为-1)
public int indexOf( int ch, int fromIndex )
这个方法是对上一个方法的重载,新增的参数fromIndex为查找的起始点。用法如:
String s="abcdaefg";
int r=s.indexOf('a',1);
(注:r的值为4)
public int indexOf( String str )
这个重载方法返回 字符串常量str在当前字符串常量中从左到右第一次出现的位置,若当前字符串常量中不包含字符串常量str,则返回-1。用法如:
String s="abcdefg";
int r1=s.indexOf("cd");
int r2=s.indexOf("ca");
(注:r1的值为2,r2的值为-1)
public int indexOf( String str, int fromIndex )
这个重载方法新增的参数fromIndex为查找的起始点。
以下四个方法与上面的四个方法用法类似,只是在字符串常量中从右向左进行查找。
public int lastIndexOf( int ch )
public int lastIndexOf( int ch, int fromIndex )
public int lastIndexOf( String str )
public int lastIndexOf( String str, int fromIndex )
public int length()
这个方法返回字符串常量的长度,这是最常用的一个方法。用法如:
String s="abc";
int result=s.length();
(注:result的值为3)
public char[] toCharArray()
这个方法将当前字符串常量转换为字符数组,并返回。用法如:
String s="Who are you?";
char z[]=s.toCharArray();
public static String valueOf( boolean b )
public static String valueOf( char c )
public static String valueOf( int i )
public static String valueOf( long l )
public static String valueOf( float f )
public static String valueOf( double d )
以上6个方法可将boolean、char、int、long、float和double 6种类型的变量转换为String类的对象。用法如:
String r1=String.valueOf(true); (注:r1的值为"true")
String r2=String.valueOf('c'); (注:r2的值为"c")
float ff=3.1415926;
String r3=String.valueOf(ff); (注:r3的值为"3.1415926")
StringBuffer 类
String类是字符串常量,是不可更改的常量。而StringBuffer是字符串变量,它的对象是可以扩充和修改的。
String类的构造函数
public StringBuffer()
创建一个空的StringBuffer类的对象。 public StringBuffer( int length )
创建一个长度为 参数length 的StringBuffer类的对象。
注意:如果参数length小于0,将触发NegativeArraySizeException异常。
public StringBuffer( String str )
用一个已存在的字符串常量来创建StringBuffer类的对象。
StringBuffer类的方法有:
public String toString()
转换为String类对象并返回。由于大多数类中关于显示的方法的参数多为String类的对象,所以经常要将StringBuffer类的对象转换为String类的对象,再将它的值显示出来。用法如:
StringBuffer sb=new StringBuffer("How are you?");
Label l1=new Label(sb.toString());
(注:声明一个标签对象l1,l1上的内容为How are you?)
public StringBuffer append( boolean b )
public StringBuffer append( char c )
public StringBuffer append( int i)
public StringBuffer append( long l )
public StringBuffer append( float f )
public StringBuffer append( double d )
以上6个方法可将boolean、char、int、long、float和double 6种类型的变量追加到StringBuffer类的对象的后面。用法如:
double d=123.4567;
StringBuffer sb=new StringBuffer();
sb.append(true);
sb.append('c').append(d).append(99);
(注:sb的值为truec123.456799)
public StringBuffer append( String str )
将字符串常量str追加到StringBuffer类的对象的后面。
public StringBuffer append( char str[] )
将字符数组str追加到StringBuffer类的对象的后面。
public StringBuffer append( char str[], int offset, int len )
将字符数组str,从第offset个开始取len个字符,追加到StringBuffer类的对象的后面。
public StringBuffer insert( int offset, boolean b )
public StringBuffer insert( int offset, char c )
public StringBuffer insert( int offset, int i )
public StringBuffer insert( int offset, long l )
public StringBuffer insert( int offset, float f )
public StringBuffer insert( int offset, double d )
public StringBuffer insert( int offset, String str )
public StringBuffer insert( int offset, char str[] )
将boolean、char、int、long、float、double类型的变量、String类的对象或字符数组插入到StringBuffer类的对象中的第offset个位置。用法如:
StringBuffer sb=new StringBuffer("abfg");
sb.insert(2,"cde");
(注:sb的值为abcdefg)
public int length()
这个方法返回字符串变量的长度,用法与String类的length方法类似。
分享到:
相关推荐
JAVA平台提供了两个类:String和StringBuffer,它们可以储存...而这个StringBuffer类提供的字符串进行修改.当你知道字符数据要改变的时候你就可以使用 StringBuffer.典型地,你可以使用 StringBuffers来动态构造字符数据.
StringBuffer类是Java中另一种字符串类,它的字符串可以被修改。StringBuffer类是线程安全的,所有的方法都加上了synchronized关键字,保证了线程安全性。 在StringBuffer类的源码中,我们可以看到,它的扩容机制是...
在Java编程语言中,`String` 和 `StringBuffer` 都是非常重要的类,它们用于处理字符串数据。虽然它们都实现了字符串操作的功能,但它们之间存在一些重要的区别,这些区别主要体现在性能、线程安全以及可变性等方面...
在Java编程语言中,`String`和`StringBuffer`是用来处理文本字符串的两种不同类,它们各有特点并适用于不同的场景。理解它们之间的区别对于优化代码性能至关重要。 首先,`String`类代表的是不可变的字符串。这意味...
在 Java 中,String, StringBuffer 和 StringBuilder 三个类都是用于字符操作的,但它们之间有着很大的区别。 首先,String 是不可变类,意味着一旦创建了 String 对象,就不能修改它的值。每次对 String 对象的...
根据提供的信息,我们可以总结出这份Java基础String类选择题练习题主要聚焦于String及StringBuffer类的使用。尽管具体的题目内容未给出,但从所展示的信息中可以推断出该练习题集涵盖了以下几方面的知识点: ### 一...
**StringBuffer类** `StringBuffer`是线程安全的字符串操作类,适合在多线程环境中使用。它的内部机制与`String`类似,但是提供了`append()`和`insert()`等方法来改变字符串内容,而不会每次都创建新对象。例如: `...
在Java编程语言中,`String`、`StringBuffer`和`StringBuilder`是处理字符串的三个重要类,它们各自有特定的使用场景和性能差异。理解这些类的特点对于编写高效的Java代码至关重要。 首先,`String`类是不可变的,...
StringBuffer:字符创变量 StringBuilder:字符创变量 从上面的名字可以看到,String是“字符创常量”,也就是不可改变的对象。对于这句话的理解你可能会产生这样一个疑问 ,比如这段代码:
在Java编程语言中,`String`与`StringBuffer`是两个重要的字符串处理类,它们各自具有独特的特性和用途,尤其在面试或笔试中常被提及作为考察应聘者对Java基础知识掌握程度的重要知识点。 ### `String`类:不可变性...
在Java编程语言中,`String`和`StringBuffer`都是用来表示和操作字符串的重要类,但它们在使用场景和性能上有显著的区别。了解这些差异对于编写高效、优化的代码至关重要。 首先,`String`类是不可变的。这意味着...
#### StringBuffer类简介 `StringBuffer`类是Java中的另一个重要类,用于处理可变的字符序列。与`String`类不同,`StringBuffer`允许我们修改字符串内容。 ##### 构造函数 1. **无参构造函数** `public ...
Java String 和StringBuffer 是 Java 语言中两个基本的字符串类,它们都是用于存储和操作字符串的,但是它们之间有着很大的区别。 String 类 String 类表示内容不可改变的字符串。这种字符串在创建后无法修改,...
Java 中 String, StringBuffer 与 StringBuilder 的区别 Java 中 String, StringBuffer 与 StringBuilder 三种字符串类型的区别是很多开发者经常混淆或不了解的知识点。今天,我们将深入探讨这三种字符串类型的区别...
在Java编程语言中,String类和StringBuffer类是处理字符串的两种主要方式,它们各自有不同的特性和适用场景。理解二者的区别对于编写高效、优化的代码至关重要。 1. **String类**: - **不可变性**:String类的...
String、StringBuffer 和 StringBuilder 是 Java 语言中三种不同类型的字符串处理方式,它们之间存在着明显的性能和线程安全性差异。 String String 类型是不可变的对象,每次对 String 对象进行改变时都会生成一...
在Java编程语言中,`String`和`StringBuffer`(在Java 5之后被`StringBuilder`取代,但在多线程环境中仍然使用`StringBuffer`)是处理文本字符串的两个核心类,它们各自有着不同的特性和用途。理解它们的区别对于...
在Java编程语言中,`String`和`StringBuffer`都是用来表示和操作字符串的重要类,但它们在性能和使用场景上有显著的区别。 首先,`String`类是不可变的,这意味着一旦创建了一个`String`对象,它的内容就不能改变。...
在Java编程语言中,`String`、`StringBuffer`和`StringBuilder`都是用来处理字符串的类,但它们之间存在显著的差异,主要体现在性能、线程安全性和使用场景上。 首先,`String`是最基本的字符串类,它代表的是不可...